数组A中任意两个相邻元素大小相差1,在其中查找某个数。

来源:互联网 发布:弗洛伊德算法例题 编辑:程序博客网 时间:2024/05/24 06:36
package com.arithmetic.interview;import static java.lang.Math.abs;/** * Created by leiqiao on 2017/9/29. * describe:数组A中任意两个相邻元素大小相差1,在其中查找某个数。 * 数组A中任意两个相邻元素大小相差1,现给定这样的数组A和目标整数t,找出t在数组A中的位置。 *如数组:[1,2,3,4,3,4,5,6,5],找到4在数组中的位置。 */public class test01_baidu {    public static int [] arrays = {1,2,1,2,1,2,1,2,1,0};    public static int input = 0;    public static void main(String[] args){        /*int temp = 0;        while(temp < arrays.length){            if(input == arrays[temp]){                System.out.println(temp);            }            temp += Math.max(abs((arrays[temp]-input)), 1);        }*/        //利用奇偶性质可以优化        int temp;        if((arrays[0]-input)%2 == 0){            temp = 0;        }else            temp = 1;        while (temp < arrays.length){            if(input == arrays[temp]){                System.out.println(temp);            }            temp += Math.max(abs((arrays[temp]-input)), 2);        }    }}
阅读全文
0 0
原创粉丝点击