1886. 目标移动
 
描述
 
给定一个数组 nums 以及一个整数 target 。 你需要把数组中等于target的元素移动到数组的最前面,并且其余的元素相对顺序不变。 你的所有移动操作都应该在原数组上面操作。
 
数组的长度范围是: [1, 100000]如果数组中没有出现 target 则不需要对原数组进行修改。 
样例 1:
 
输入:
	nums = [5, 1, 6, 1]
	target=1
输出: 
	[1, 1, 5, 6]
解释: 
	1 是目标值,应该让所有的1在数组的最前面
 
样例 2:
 
输入:
	nums = [-1, 2, 3, 5, 2, 2]
	target = 2
输出: 
	[2, 2, 2, -1, 3, 5]
解释: 
	2 是目标值,应该让所有的 2 都在数组的最前面 
 
样例 3:
 
输入:
nums = [2, 3, 4, 6]
target = 1
输出: [2, 3, 4, 6]
解释: 数组中没有目标值,不需要改变原数组
 
原题传送门
 
 
 文章目录
 1886. 目标移动描述样例 1:样例 2:样例 3:
  题解最后说两句声明
 
 
题解
 
public class Solution {
    
    public void MoveTarget(int[] nums
, int target
) {
        
        int count 
= 0;
        for (int i 
= nums
.length 
- 1; i 
>= 0; i
--) {
            if (nums
[i
] == target
) {
                count
++;
            } else {
                if (count 
> 0) {
                    nums
[i 
+ count
] = nums
[i
];
                }
            }
        }
        for (int i 
= 0; i 
< count
; i
++) {
            nums
[i
] = target
;
        }
    }
}
 
最后说两句
 
非常感谢你阅读本文章,如果你觉得本文对你有所帮助,请留下你的足迹,点个赞,留个言,多谢~
 
作者水平有限,如果文章内容有不准确的地方,请指正。
 
希望小伙伴们都能每天进步一点点。
 
声明
 
本文由二当家的白帽子博客原创,转载请注明来源,谢谢~