首页 > 试题广场 >

【编程题】给定数组,任意相邻两个元素的差的绝对值为1,设计一

[问答题]
【编程题】给定数组,任意相邻两个元素的差的绝对值为1,设计一个算法,在该数组中可以查找某个元素的位置,如果该元素的值多次出现,返回第一次的位置。例如{4, 5, 6, 5, 6, 7, 8, 9, 10, 9}元素9出现了两次,第一次出现的位置7
def findIndex(arr, num):
    i = 0
    while i < len(arr):
        if arr[i] == num:
            return i
        diff = abs(num - arr[i])
        i += diff

发表于 2020-07-22 10:58:28 回复(0)
        int nums[] = {4, 5, 6, 5, 6, 7, 8, 9, 10, 9};
        int p = 9;
        for (int i = 0; i < nums.length; i++) {
            if(nums[i] == p){
                System.out.println(i);
                break;
            }
        }
发表于 2022-08-31 16:51:40 回复(0)
存入String数组
如果indexOf()和lastIndexOf()值不相同则有多次
其实只要返回indexOf()就行了。。
发表于 2019-03-13 10:55:36 回复(1)
/*
 * 给定数组,任意相邻两个元素的差的绝对值为1,设计一个算法,在该数组中可以查找某个元素的位置,如果该元素的值多次出现,
 * 返回第一次的位置。例如{4, 5, 6, 5, 6, 7, 8, 9, 10, 9}元素9出现了两次,第一次出现的位置7。
 * 代码好乱,勉强能看
 * */
package test;

public class Test8 {     public static void main(String[] args) {         int[] a={4, 5, 6, 5, 6, 7, 8, 9, 10, 9};         int m=6;         System.out.println(get(a,m));     }     public static int get(int[] b,int m) {         int[] n=new int[b.length];         int j=0;         for(int i=0;i<b.length;i++) {             if(b[i]==m) {                 n[j]=i;                 j++;             }         }         return n[0];     }
}
发表于 2018-07-26 22:10:05 回复(0)