1,问题简述
假设按照升序排序的数组在预先未知的某个点上进行了旋转。
( 例如,数组 [0,0,1,2,2,5,6] 可能变为 [2,5,6,0,0,1,2] )。
编写一个函数来判断给定的目标值是否存在于数组中。若存在返回 true,否则返回 false
2,示例
示例 1:
输入: nums = [2,5,6,0,0,1,2], target = 0
输出: true
示例 2:
输入: nums = [2,5,6,0,0,1,2], target = 3
输出: false
3,题解思路
HashSet集合的使用
4,题解程序
import java.util.HashSet;
public class SearchTest2 {
public static void main(String[] args) {
int[] nums = {1};
int target = 1;
boolean flag = search(nums, target);
System.out.println("flag = " + flag);
}
public static boolean search(int[] nums, int target) {
if (nums == null || nums.length == 0) {
return false;
}
int length = nums.length;
HashSet<Integer> hashSet = new HashSet<>(length);
for (int num : nums) {
hashSet.add(num);
if (hashSet.contains(target)) {
return true;
}
}
return false;
}
}
5,题解程序图片版
6,总结
HashSet集合的使用,
凑字数来了,曾经我会后悔自己有些事情没有去做,但是随着自己对自己的一通分析,觉得自己本身还是有一些优点的,后悔有用吗?
就这样一步步问自己,经过读书的理解,自己慢慢明白了一个道理,人生走的每一步都算数。
很久之前的文章就给与了自己这句话,急功近利,欲速则不达,找好自己的人生路,慢慢跑吧,这样自己的人生方向才有了自己独有的特点。