27. 移除元素
程序员小航
共 272字,需浏览 1分钟
· 2022-01-12
题目
题解
必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成
所以只能修改原数组。
题解一:
直接对满足 nums[i] == val
的值进行依次覆盖即可。
public int removeElement(int[] nums, int val) {
int idx = 0;
for (int i = 0; i < nums.length; i++) {
if (nums[i] != val) {
nums[idx] = nums[i];
idx++;
}
}
return idx;
}
题解二:
元素的顺序可以改变
因为对顺序没有要求,所以可以直接使用数组尾部的值覆盖前面的值。
class Solution {
public int removeElement(int[] nums, int val) {
int idx = 0;
int last = nums.length;
while (idx < last) {
if (nums[idx] == val) {
nums[idx] = nums[last - 1];
last--;
} else {
idx++;
}
}
return idx;
}
}
-
评论
聊聊Flink:这次把Flink的触发器(Trigger)、移除器(Evictor)讲透
一、触发器(Trigger)Trigger 决定了一个窗口(由 window assigner 定义)何时可以被 window function 处理。每个 WindowAssigner 都有一个默认的 Trigger。如果默认 trigger 无法满足你的需要,你可以在 trigger(…)...
老周聊架构
0
为什么阿里巴巴修正了HashMap关于1024个元素扩容的次数?(典藏版)
来源|juejin.cn/post/7302724955699789863引言最近在翻看《阿里巴巴开发手册-嵩山版》时,发现其修正了关于HashMap关于1024个元素扩容的次数 在先前的版本泰山版我们可以看到以下描述:而嵩山版则可以看到:同时我...
我是程序汪
0
只需要点击页面上的元素,就能够自动打开 vscode 定位到源代码,支...
点击上方 前端Q ,关注公众号 回复 加群 ,加入前端Q技术交流群 背景及相关信息 不知道你是否遇到过产品或者测试给你一个页面让你改一点东西,你却找不到页面源代码在哪里的场景?对于一些大型项目,文件数量多、文...
前端Q
0