编程题java
来源:互联网 发布:索尼a5000 知乎 编辑:程序博客网 时间:2024/06/05 11:47
[编程题] 买帽子
时间限制:1秒
空间限制:32768K
度度熊想去商场买一顶帽子,商场里有N顶帽子,有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,问第三便宜的帽子价格是多少?
输入描述:
首先输入一个正整数N(N <= 50),接下来输入N个数表示每顶帽子的价格(价格均是正整数,且小于等于1000)
输出描述:
如果存在第三便宜的帽子,请输出这个价格是多少,否则输出-1
输入例子:
1010 10 10 10 20 20 30 30 40 40
输出例子:
30
网上的大神大部分都是c++做的,我是用java实现,但应该可以优化,希望有大神指点,谢谢!
import java.util.Scanner;//度度熊想去商场买一顶帽子,商场里有N顶帽子,//有些帽子的价格可能相同。度度熊想买一顶价格第三便宜的帽子,//问第三便宜的帽子价格是多少? public class Main {public static int pai(int[] s,int N){int min3=0;int temp=0;for(int i=N-1;i>=0;i--)for(int j=0;j<i;j++){if(s[j]>s[j+1]){temp=s[j];s[j]=s[j+1];s[j+1]=temp;}}int k=0;for(int j=0;j<N-1;j++){if(s[j]!=s[j+1]){k++;}if(k==2){min3=s[1+j];break;}}if(k==0||k==1)min3=-1;return min3;}public static void main(String[] args) {// TODO Auto-generated method stubScanner input=new Scanner(System.in);System.out.println("输入个数"); int N=input.nextInt(); int a[]=new int[N]; System.out.println("输入数组"); for(int i=0;i<N;i++){ a[i]=input.nextInt(); } System.out.println(pai(a,N)); }}
[编程题] 度度熊回家时间限制:1秒
空间限制:32768K
一个数轴上共有N个点,第一个点的坐标是度度熊现在位置,第N-1个点是度度熊的家。现在他需要依次的从0号坐标走到N-1号坐标。但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,并直接将这个点忽略掉,问度度熊回家至少走多少距离?输入描述:
输入一个正整数N, N <= 50。接下来N个整数表示坐标,正数表示X轴的正方向,负数表示X轴的负方向。绝对值小于等于100输出描述:
输出一个整数表示度度熊最少需要走的距离。输入例子:
41 4 -1 3输出例子:
4
import java.util.Scanner;//一个数轴上共有N个点,第一个点的坐标是度度熊现在位置//,第N-1个点是度度熊的家。//现在他需要依次的从0号坐标走到N-1号坐标。//但是除了0号坐标和N-1号坐标,他可以在其余的N-2个坐标中选出一个点,//并直接将这个点忽略掉,问度度熊回家至少走多少距离? public class Dudu {public static int minDistance(int[] a,int N){int min=Math.abs(a[1]-a[0])+Math.abs(a[2]-a[1])-Math.abs(a[2]-a[0]);int minIndex=1;for(int k=1;k<N-1;k++){int tem=Math.abs(a[k-1]-a[k])+Math.abs(a[k+1]-a[k])-Math.abs(a[k+1]-a[k-1]);if(tem>=min) {min=tem; minIndex=k; }}int mindist=Math.abs(a[minIndex+1]-a[minIndex-1]);for(int i=0;i<N-1;i++){if(i!=minIndex-1){mindist +=Math.abs(a[i+1]-a[i]);}elsei++;}return mindist;}public static void main(String[] args) {// TODO Auto-generated method stubScanner input=new Scanner(System.in);System.out.println("输入个数"); int N=input.nextInt(); int a[]=new int[N]; System.out.println("输入数组"); for(int i=0;i<N;i++){ a[i]=input.nextInt(); } System.out.println(minDistance(a, N));}}
阅读全文
0 0
- JAVA编程题
- JAVA编程题
- java面试编程题
- java 面试编程题
- JAVA编程题
- JAVA编程题
- java编程题
- java编程题
- JAVA编程小题
- Java重点编程题
- java 编程题
- 2012java编程题
- JAVA编程题
- java编程题
- java面试编程题
- Java编程题
- 一些Java编程题
- java编程大题
- Jenkins构建自动化打包项目示例
- Android EditText 软键盘按键设置
- bzoj3687
- 操作系统(一)
- 神了!React VR使得Oculus Home在Gear VR上运行更快更省电
- 编程题java
- 查询数据库记录SELECT
- php常见术语
- 共享内存
- JQuery trigger方法与triggerHandler方法的区别
- windows10 64bit + Anaconda + python3.5 安装xgboost的一种简单方法
- BZOJ 3534([Sdoi2014]重建-变元矩阵-树定理-所有生成树的边权积和)
- Unity编译Android包错误,Unable to list target platforms
- git---commit 操作遇到提交失败,tell me who you are