题目描述 给定一个整数数组 A,如果它是有效的山脉数组就返回 true,否则返回 false。 让我们回顾一下,如果 A 满足下述条件,那么它是一个山脉数组: A.length >= 3 在 0 < i < A.length - 1 条件下,存在 i 使得: A[0] < A[1] < ... A[i-1] < A[i] A[i] > A[i+1] > ... > A[A.length - 1] 示例 1: 输入:[2,1] 输出:false 示例 2: 输入:[3,5,5] 输出:false 示例 3: 输入:[0,3,2,1] 输出:true 提示: 0 <= A.length <= 10000 0 <= A[i] <= 10000 解法 利用二分的思路。从两头往中间找。判断中间节点是否相同。 if (A.length < 3) { return false; } if(A[0] > A[1])....
题目描述 给你一个整数数组 arr,请你帮忙统计数组中每个数的出现次数。 如果每个数的出现次数都是独一无二的,就返回 true;否则返回 false。 示例 1: 输入:arr = [1,2,2,1,1,3] 输出:true 解释:在该数组中,1 出现了 3 次,2 出现了 2 次,3 只出现了 1 次。没有两个数的出现次数相同。 示例 2: 输入:arr = [1,2] 输出:false 示例 3: 输入:arr = [-3,0,1,-3,1,1,1,-3,10,0] 输出:true 解法 使用哈希表解决,第一遍存储每个数字出现的次数,第二遍存储用set存储出现的次数,如果set插入重复,即不是独一无二的出现次数 public boolean uniqueOccurrences(int[] arr) { Map<Integer, Integer> arrCountMap = new HashMap<>(); for(int i = 0; i < arr.length; i++) { arrCountMap.put(ar....