面试题---数组中的元素相差为1,如何找到数t的位置
2017-05-20 22:31
302 查看
/**
* @date 2017-05-20
* @author liuffei
* @description 数组里的元素相差1,如何找到数t的位置
*/
public class TLocation {
//source表示某个数组,t表示要查找的数
public static int findLoc(int[] source,int t){
int n = source.length;
int pos = 0;//初始位置为0
//循环:如果当前位置上的数与查找的数t不一致,就计算两个数的差,进行跨越式遍历
while(pos < n){
pos += Math.abs(t-source[pos]);
if(t == source[pos]){
return pos;
}
}
return -1;//找不到返回-1
}
public static void main(String args[]){
//源数组
int[] source = {1,2,3,2,3,4,5,4,3,2,1,2,3};
System.out.println(findLoc(source,5));
}
}
* @date 2017-05-20
* @author liuffei
* @description 数组里的元素相差1,如何找到数t的位置
*/
public class TLocation {
//source表示某个数组,t表示要查找的数
public static int findLoc(int[] source,int t){
int n = source.length;
int pos = 0;//初始位置为0
//循环:如果当前位置上的数与查找的数t不一致,就计算两个数的差,进行跨越式遍历
while(pos < n){
pos += Math.abs(t-source[pos]);
if(t == source[pos]){
return pos;
}
}
return -1;//找不到返回-1
}
public static void main(String args[]){
//源数组
int[] source = {1,2,3,2,3,4,5,4,3,2,1,2,3};
System.out.println(findLoc(source,5));
}
}
相关文章推荐
- 【面试题】-数组A中任意两个相邻元素大小相差1,找出某个数在数组A中的位置。(所有位置 )
- 如何在O(n)时间内找到一个整数数组中的第二大元素
- 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。
- 如何取一个数组中相同元素的位置
- 在JavaScript数组中找到最小元素的位置
- 在一个元素个数为N的数组里,找到升序排在N/5位置的元素的最优算法时间复杂度是----阿里巴巴2015实习生笔试题
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
- 对于一个有序的数组,如果要插入一个元素并保证数组还有序, 问如何获取该元素位置。用二分法
- [经典面试题][百度]数组A中任意两个相邻元素大小相差1,在其中查找某个数。
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 如何在JS数组特定索引处指定位置插入元素?
- [面试题]设计一个算法找到数组中两个元素相加等于指定数的所有组合
- 练习:有一个有序的数组,想要将一个元素插入到该数组中,还要保证该数组是有序的。如何获取该元素在数组中的位置.(2012.2.17)
- 给定整形数组A和目标整数t,A相邻元素差绝对值为1,请找到t在A中的位置
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置(非遍历)
- 在相邻元素相差1的数组中查找某一特定元素第一次出现的位置
- 面试题精选(85):给定数组Arr[n],O(n)时间内找出每个元素左侧所有元素中位置最靠近该元素且大于该元素的元素
- 面试题14:基于某个条件来调整数组中元素的位置