2089. Find Target Indices After Sorting Array
2089. Find Target Indices After Sorting Array
1 | You are given a 0-indexed integer array nums and a target element target. |
难度 : Easy
思路
解法1
排序然后遍历
时间复杂度 : O(NlogN)1
2
3
4
5
6
7
8
9
10
11
12
13
14class Solution {
public List<Integer> targetIndices(int[] nums, int target) {
Arrays.sort(nums);
List<Integer> ans = new ArrayList<>();
for (int i = 0; i < nums.length; i++) {
if (target == nums[i]) {
ans.add(i);
} else if (target < nums[i]) {
break;
}
}
return ans;
}
}
解法2
counting
时间复杂度 : O(N)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17class Solution {
public List<Integer> targetIndices(int[] nums, int target) {
int cnt = 0; // total # of num == target
int rank = 0; //total # of num < target
for (int num : nums) {
cnt += (num == target ? 1 : 0);
rank += (num < target ? 1 : 0);
}
List<Integer> ans = new ArrayList<>();
while (cnt > 0) {
ans.add(rank);
rank++;
cnt--;
}
return ans;
}
}