Skip to content

Commit 3980f8c

Browse files
committed
feat: add solutions to lc problem: No.2089
No.2089.Find Target Indices After Sorting Array
1 parent 06bd2ee commit 3980f8c

File tree

6 files changed

+66
-60
lines changed

6 files changed

+66
-60
lines changed

solution/2000-2099/2089.Find Target Indices After Sorting Array/README.md

+30-24
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@
5858

5959
<!-- 这里可写通用的实现逻辑 -->
6060

61+
**方法一:排序**
62+
63+
将数组 `nums` 排序后,遍历数组,找出所有等于 `target` 的元素的下标,将其加入结果数组中。
64+
65+
时间复杂度 $O(n \times \log n)$,空间复杂度 $O(\log n)$。其中 $n$ 为数组 `nums` 的长度。
66+
6167
<!-- tabs:start -->
6268

6369
### **Python3**
@@ -68,7 +74,7 @@
6874
class Solution:
6975
def targetIndices(self, nums: List[int], target: int) -> List[int]:
7076
nums.sort()
71-
return [i for i, num in enumerate(nums) if num == target]
77+
return [i for i, v in enumerate(nums) if v == target]
7278
```
7379

7480
### **Java**
@@ -90,22 +96,6 @@ class Solution {
9096
}
9197
```
9298

93-
### **TypeScript**
94-
95-
```ts
96-
function targetIndices(nums: number[], target: number): number[] {
97-
nums.sort((a, b) => a - b);
98-
let ans = [];
99-
for (let i = 0; i < nums.length && nums[i] <= target; i++) {
100-
let cur = nums[i];
101-
if (cur == target) {
102-
ans.push(i);
103-
}
104-
}
105-
return ans;
106-
}
107-
```
108-
10999
### **C++**
110100

111101
```cpp
@@ -114,9 +104,11 @@ public:
114104
vector<int> targetIndices(vector<int>& nums, int target) {
115105
sort(nums.begin(), nums.end());
116106
vector<int> ans;
117-
for (int i = 0; i < nums.size(); ++i)
118-
if (nums[i] == target)
107+
for (int i = 0; i < nums.size(); ++i) {
108+
if (nums[i] == target) {
119109
ans.push_back(i);
110+
}
111+
}
120112
return ans;
121113
}
122114
};
@@ -125,15 +117,29 @@ public:
125117
### **Go**
126118
127119
```go
128-
func targetIndices(nums []int, target int) []int {
120+
func targetIndices(nums []int, target int) (ans []int) {
129121
sort.Ints(nums)
130-
var ans []int
131-
for i, num := range nums {
132-
if num == target {
122+
for i, v := range nums {
123+
if v == target {
133124
ans = append(ans, i)
134125
}
135126
}
136-
return ans
127+
return
128+
}
129+
```
130+
131+
### **TypeScript**
132+
133+
```ts
134+
function targetIndices(nums: number[], target: number): number[] {
135+
nums.sort((a, b) => a - b);
136+
let ans: number[] = [];
137+
for (let i = 0; i < nums.length; ++i) {
138+
if (nums[i] == target) {
139+
ans.push(i);
140+
}
141+
}
142+
return ans;
137143
}
138144
```
139145

solution/2000-2099/2089.Find Target Indices After Sorting Array/README_EN.md

+24-24
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ The index where nums[i] == 5 is 4.
5656
class Solution:
5757
def targetIndices(self, nums: List[int], target: int) -> List[int]:
5858
nums.sort()
59-
return [i for i, num in enumerate(nums) if num == target]
59+
return [i for i, v in enumerate(nums) if v == target]
6060
```
6161

6262
### **Java**
@@ -76,22 +76,6 @@ class Solution {
7676
}
7777
```
7878

79-
### **TypeScript**
80-
81-
```ts
82-
function targetIndices(nums: number[], target: number): number[] {
83-
nums.sort((a, b) => a - b);
84-
let ans = [];
85-
for (let i = 0; i < nums.length && nums[i] <= target; i++) {
86-
let cur = nums[i];
87-
if (cur == target) {
88-
ans.push(i);
89-
}
90-
}
91-
return ans;
92-
}
93-
```
94-
9579
### **C++**
9680

9781
```cpp
@@ -100,9 +84,11 @@ public:
10084
vector<int> targetIndices(vector<int>& nums, int target) {
10185
sort(nums.begin(), nums.end());
10286
vector<int> ans;
103-
for (int i = 0; i < nums.size(); ++i)
104-
if (nums[i] == target)
87+
for (int i = 0; i < nums.size(); ++i) {
88+
if (nums[i] == target) {
10589
ans.push_back(i);
90+
}
91+
}
10692
return ans;
10793
}
10894
};
@@ -111,15 +97,29 @@ public:
11197
### **Go**
11298
11399
```go
114-
func targetIndices(nums []int, target int) []int {
100+
func targetIndices(nums []int, target int) (ans []int) {
115101
sort.Ints(nums)
116-
var ans []int
117-
for i, num := range nums {
118-
if num == target {
102+
for i, v := range nums {
103+
if v == target {
119104
ans = append(ans, i)
120105
}
121106
}
122-
return ans
107+
return
108+
}
109+
```
110+
111+
### **TypeScript**
112+
113+
```ts
114+
function targetIndices(nums: number[], target: number): number[] {
115+
nums.sort((a, b) => a - b);
116+
let ans: number[] = [];
117+
for (let i = 0; i < nums.length; ++i) {
118+
if (nums[i] == target) {
119+
ans.push(i);
120+
}
121+
}
122+
return ans;
123123
}
124124
```
125125

solution/2000-2099/2089.Find Target Indices After Sorting Array/Solution.cpp

+4-2
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ class Solution {
33
vector<int> targetIndices(vector<int>& nums, int target) {
44
sort(nums.begin(), nums.end());
55
vector<int> ans;
6-
for (int i = 0; i < nums.size(); ++i)
7-
if (nums[i] == target)
6+
for (int i = 0; i < nums.size(); ++i) {
7+
if (nums[i] == target) {
88
ans.push_back(i);
9+
}
10+
}
911
return ans;
1012
}
1113
};
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
func targetIndices(nums []int, target int) []int {
1+
func targetIndices(nums []int, target int) (ans []int) {
22
sort.Ints(nums)
3-
var ans []int
4-
for i, num := range nums {
5-
if num == target {
3+
for i, v := range nums {
4+
if v == target {
65
ans = append(ans, i)
76
}
87
}
9-
return ans
8+
return
109
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
class Solution:
22
def targetIndices(self, nums: List[int], target: int) -> List[int]:
33
nums.sort()
4-
return [i for i, num in enumerate(nums) if num == target]
4+
return [i for i, v in enumerate(nums) if v == target]

solution/2000-2099/2089.Find Target Indices After Sorting Array/Solution.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
function targetIndices(nums: number[], target: number): number[] {
22
nums.sort((a, b) => a - b);
3-
let ans = [];
4-
for (let i = 0; i < nums.length && nums[i] <= target; i++) {
5-
let cur = nums[i];
6-
if (cur == target) {
3+
let ans: number[] = [];
4+
for (let i = 0; i < nums.length; ++i) {
5+
if (nums[i] == target) {
76
ans.push(i);
87
}
98
}

0 commit comments

Comments
 (0)