网站后台登录模板html,html表单的完整代码,最新网络公司排名,手机软件开发工程师我的第一想法确实是#xff1a;先合并数组#xff0c;再排序#xff0c;搞完。 哈哈哈#xff0c;想那么多干嘛#xff0c;目的达成了就好了。 力扣官方题解是双指针#xff1a; 还有糕手#xff1a; Python#xff1a;
def merge(nums1, m, nums2, n):# 两个指针分别… 我的第一想法确实是先合并数组再排序搞完。 哈哈哈想那么多干嘛目的达成了就好了。 力扣官方题解是双指针 还有糕手 Python
def merge(nums1, m, nums2, n):# 两个指针分别指向 nums1 和 nums2 的最后一个元素p1 m - 1p2 n - 1# 指向 nums1 的最后一个位置p m n - 1# 当 nums1 和 nums2 都还有元素时比较它们的最后一个元素并将较大的元素放在 nums1 的正确位置上while p1 0 and p2 0:if nums1[p1] nums2[p2]:nums1[p] nums2[p2]p2 - 1else:nums1[p] nums1[p1]p1 - 1p - 1# 如果 nums2 还有剩余元素将它们复制到 nums1 的剩余位置上nums1[:p2 1] nums2[:p2 1] C#
public void Merge(int[] nums1, int m, int[] nums2, int n) {int p1 m - 1;int p2 n - 1;int p m n - 1;while (p1 0 p2 0) {if (nums1[p1] nums2[p2]) {nums1[p] nums2[p2];p2--;} else {nums1[p] nums1[p1];p1--;}p--;}while (p2 0) {nums1[p] nums2[p2];p--;p2--;}
} 总结 可以称之为三指针 方法因为我们同时使用了三个指针p1、p2 和 p来操作和遍历两个数组。每个指针都有其特定的用途
p1 指向 nums1 中的元素p2 指向 nums2 中的元素p 指向 nums1 中应该放置下一个元素的位置 然而你也可以将其视为 双指针 方法如果你将 p 视为一个辅助变量而不是一个 指针。在这种情况下双指针 是指 p1 和 p2它们分别遍历 nums1 和 nums2。这种分类主要取决于你如何定义 指针。