You are given a 0-indexed integer array nums
and a target element target
.
A target index is an index i
such that nums[i] == target
.
Return a list of the target indices of nums
after sorting nums
in non-decreasing order. If there are no target indices, return an empty list. The returned list must be sorted in increasing order.
Example 1:
Input: nums = [1,2,5,2,3], target = 2 Output: [1,2] Explanation: After sorting, nums is [1,2,2,3,5]. The indices where nums[i] == 2 are 1 and 2.
Example 2:
Input: nums = [1,2,5,2,3], target = 3 Output: [3] Explanation: After sorting, nums is [1,2,2,3,5]. The index where nums[i] == 3 is 3.
Example 3:
Input: nums = [1,2,5,2,3], target = 5 Output: [4] Explanation: After sorting, nums is [1,2,2,3,5]. The index where nums[i] == 5 is 4.
Constraints:
1 <= nums.length <= 100
1 <= nums[i], target <= 100
struct Solution;
impl Solution {
fn target_indices(mut nums: Vec<i32>, target: i32) -> Vec<i32> {
nums.sort_unstable();
let n = nums.len();
let mut res = vec![];
for i in 0..n {
if nums[i] == target {
res.push(i as i32);
}
}
res
}
}
#[test]
fn test() {
let nums = vec![1, 2, 5, 2, 3];
let target = 2;
let res = vec![1, 2];
assert_eq!(Solution::target_indices(nums, target), res);
let nums = vec![1, 2, 5, 2, 3];
let target = 3;
let res = vec![3];
assert_eq!(Solution::target_indices(nums, target), res);
let nums = vec![1, 2, 5, 2, 3];
let target = 5;
let res = vec![4];
assert_eq!(Solution::target_indices(nums, target), res);
}