题目OJ链接:27.移除元素
【分析题目】我们首先需要来判断一下这个数组是否为空或者数组的长度是否为0,如果是的话,不用计算直接返回0; 然后,我们可以定义一个数字 i 和 j 。i 表示数组原来的下标。j 表示数组新的下标。用一个循环遍历数组,用 if 语句来判断一下 nums中的元素是否为val,不是val 则存到位 j 下标中。以上,我们可以得到代码:
class Solution {
public int removeElement(int[] nums, int val) {
if(nums == null || nums.length == 0){
return 0;
}
int j = 0 ;
for(int i = 0;i < nums.length; i++){
if(nums[i] != val){
nums[j] = nums[i];
j++;
}
}
return j;
}
}
题目OJ链接:26. 删除有序数组中的重复项
【分析题目】这是一个升序数组,因此不需要考虑排序的问题。
以上,我们可以得到代码:
class Solution {
public int removeDuplicates(int[] nums) {
int j = 0;
for(int i = 1;i < nums.length;i++){
if(nums[j] != nums[i]){
nums[++j] = nums[i];
}
}
return j+1;
}
}
题目OJ链接:88. 合并两个有序数组
【分析题目】此题可以偷(只因)机取巧。大聪明必备(bushi)
我们可以直接把nums2放到nums1中0位置处,在用Arrays.sort();快排直接解决。
以上:
class Solution {
public void merge(int[] nums1, int m, int[] nums2, int n) {
int j = 0;
int i = 0;
for(i = m,j = 0;i < nums1.length;i++){
nums1[i] = nums2[j];
j++;
}
Arrays.sort(nums1);
}
}
好啦。今天的做题就到这里8️⃣,每日“一”题。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有