java判断一个随机数组是否可以成为等差数组,以及等差数组的判断方法之一
来源:互联网 发布:金华管家婆软件jhgjp 编辑:程序博客网 时间:2024/06/03 16:12
和前脸天一样,这也是一道网易校招题,但为觉得,这道题更关键的一点是让我学会了怎么给随机数组排序并且判断是否为等差数组
突然间发现,Set的查重去重功能真是一个好东西,可以省掉好多的步骤。
下面附上网易的那道校招题题目:
如果一个数列S满足对于所有的合法的i,都有S[i + 1] = S[i] + d, 这里的d也可以是负数和零,我们就称数列S为等差数列。
小易现在有一个长度为n的数列x,小易想把x变为一个等差数列。小易允许在数列上做交换任意两个位置的数值的操作,并且交换操作允许交换多次。但是有些数列通过交换还是不能变成等差数列,小易需要判别一个数列是否能通过交换操作变成等差数列
附上我的解决代码:
package demo;
import java.util.Scanner;
import java.util.TreeSet;
public class Demo4 {
public staticvoid main(String[]args) {
// TODO Auto-generated method stub
// 获取控制台的输入
Scanner sc = new Scanner(System.in);
String str = sc.nextLine().toString();
int a[] = new int[str.length()];
for (intb = 0;b < str.length();b++) {
// 逐个获取字符串中的字符
charc =str.charAt(b);
// 字符数字-字符0就是实际的数字值,赋值给数字数组
a[b] = (int) (c -'0');
}
// 将数组中的数字按从小到大排列
int temp = 0;
for (intc = 0;c < str.length();c++) {
for (intd = 0;d < str.length();d++) {
if (a[c] >a[d]) {
temp =a[c];
a[c] =a[d];
a[d] =temp;
}
}
}
// 创建一个Set,因为Set又一个查重去重的特性,所以将每两个相邻数字相减后的值放入Set中
TreeSet<Integer> ts =new TreeSet<Integer>();
int b = 0;
for (intz = 0;z < a.length - 1;z++) {
b = a[z + 1] - a[z];
ts.add(b);
}
// 判断Set数组里是否只有一个值,若是则是等差数组,反之同理
if (ts.size() == 1) {
System.out.println("possible");
} else {
System.out.println("impossible");
}
}
}
当然,我这个方法肯定不是最简便的那种,希望有更简便方法的大佬能指点一二。- java判断一个随机数组是否可以成为等差数组,以及等差数组的判断方法之一
- 对数组排序后并判断是否为等差
- numpy.linspace 生成等差数组
- 判断是否是最后一个数组元素的方法
- 判断一个对象是否为数组的方法
- 判断一个变量是否为数组的几种方法
- 判断一个数组是否有序
- 判断一个数组是否为空数组
- 判断[]是否是数组的两个方法
- 判断两个数组是否相等的方法
- javascript判断是否为数组的方法
- Arrays - 判断两个数组是否一致 以及常用的判断
- 判断一个数组是否是另一个数组的子集
- 判断数组的方法
- 用递归的方法判断一个数组是否为递增数组
- JavaScript 判断两个数组是否相等 或者 判断一个数组中是否有重复的元素
- java判断对象是否为数组 并且取得数组的值 --- 用instanceof或则isArray() 方法
- java判断对象是否为数组 并且取得数组的值 --- 用instanceof或则isArray() 方法
- 启动代码中关于变量的初始化
- springboot mybaits集成分页组件
- Android Google Face API 增强现实教程
- Xcode配置mysql client教程
- docker入门之简介
- java判断一个随机数组是否可以成为等差数组,以及等差数组的判断方法之一
- Error:Execution failed for task ':app:transformResourcesWithMergeJavaResForDebug'.
- 日期控件
- WebRTC 本地服务器搭建问题记录
- Salesforceのトリガでのoldとnewの使い方
- Android源码下载
- 分苹果(C语言实现)
- Dubbo和Spring结合配置文件内容解析为bean的过程
- HDU 5120 Intersection——两圆面积并