qq靓号申请免费网站网上信息发布平台
web/
2025/10/5 17:39:57/
文章来源:
qq靓号申请免费网站,网上信息发布平台,网络服务器的分类,建网站潞城哪家强?leetcode 150道题 计划花两个月时候刷完#xff0c;今天完成了两道(1-2)150#xff1a;
#xff08;88. 合并两个有序数组#xff09;题目描述#xff1a;
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2#xff0c;另有两个整数 m 和 n #xff0c;分别表示 n…leetcode 150道题 计划花两个月时候刷完今天完成了两道(1-2)150
88. 合并两个有序数组题目描述
给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2另有两个整数 m 和 n 分别表示 nums1 和 nums2 中的元素数目。请你 合并 nums2 到 nums1 中使合并后的数组同样按 非递减顺序 排列。注意最终合并后数组不应由函数返回而是存储在数组 nums1 中。为了应对这种情况nums1 的初始长度为 m n其中前 m 个元素表示应合并的元素后 n 个元素为 0 应忽略。nums2 的长度为 n 。一看到就想到的方法写完自己都感觉一个不是最优解
class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {for(int num:nums2){nums1[m]num;}Arrays.sort(nums1);}
}第二版这个是之前写过的翻看了一下确实可以
class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int indexmn-1;while(m0n0){if(nums1[m-1]nums2[n-1]){nums1[index--]nums1[m-1];m--;}else{nums1[index--]nums2[n-1];n--;}}while(m0){nums1[index--]nums1[m-1];m--;}while(n0){nums1[index--]nums2[n-1];n--;}}
}27. 移除元素 第一版感觉我第一版也还可以想法是对的但是实现有点拉题目描述
给你一个数组 nums 和一个值 val你需要 原地 移除所有数值等于 val 的元素并返回移除后数组的新长度。不要使用额外的数组空间你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。class Solution {public int removeElement(int[] nums, int val) {int lennums.length-1;if(len0){return 0;}int index0;while(indexlen){if(nums[len]!val){int tempnums[len];nums[len]nums[index];nums[index]temp;}else{len--;}}return nums[len]val?len:len1;}
}第二版还是翻看了之前的感觉确实牛实现很巧妙
class Solution {public int removeElement(int[] nums, int val) {int index0;for(int i0;inums.length;i){if(nums[i]!val){nums[index]nums[i];}}return index;}
}希望我能坚持一下早日跳槽
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87484.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!