欢迎选择我的课程,让我们一起见证您的进步~~
私は実際にこの質問をしたわけではありませんが、彼の言いたいことを推測して次のコードを書きました。読んだ後は問題が理解できるはずです。
結果:
この質問は Python にはあまり適切ではありません (leetcode の多くのデータ構造の質問にはこの問題があります)。元の質問は配列について話していますが、ここで扱っているのはリストですが、Python のリストは実際には配列に似ています。まだいくつかの違いがあります。
タイトルからもわかるように、nums1の長さは m+n から始まります。これは、 m が m+n の長さを表しているためかもしれません。 nums1 (スペース) したがって、この例では、意味のない数字を表すために 0 を使用しましたが、スペースの存在を強調しました。
nums1
m+n
m
最初のメソッド nums1[m:] = nums2[:n] は、nums2 の最初の n 要素 (有効な要素) を nums1 のスペースの後半 (m+1 番目の位置から開始) に埋め込み、最後に最終的な答えが私たちが望むものになるようにそれらを並べ替えます。
nums1[m:] = nums2[:n]
nums2
m+1
2 番目のメソッドは、一見すると最初のメソッドと同じように見えますが、この質問で使用される入力データの点では、実際には nums1 の後の残りのスペースを使用しません。 内の各要素は (nums2 を使用して) 新しいスペースを追加し、これにより append の長さ (スペース) が変更されます。 nums1
append
に割り当てられているにもかかわらず、nums1 + nums2 は新しいオブジェクトを生成します。 , この変数は元の nums1 を参照しなくなり、元の nums1 はまったく影響を受けません。 nums1
nums1 + nums2
私が回答した質問: Python-QA
質問の意味を誤解している可能性があります
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
このプロンプトは len(nums1) >= m + n を意味します。具体的には、nums1 の最初の m 項目と nums2 の最後の n 項目を新しい配列 (リスト) にマージし、それを並べ替える必要があります (nums1 の要素数 )m + n
len(nums1) >= m + n
m + n
私は実際にこの質問をしたわけではありませんが、彼の言いたいことを推測して次のコードを書きました。読んだ後は問題が理解できるはずです。
簡単なテスト
リーリー結果:
リーリー説明
この質問は Python にはあまり適切ではありません (leetcode の多くのデータ構造の質問にはこの問題があります)。元の質問は配列について話していますが、ここで扱っているのはリストですが、Python のリストは実際には配列に似ています。まだいくつかの違いがあります。
タイトルからもわかるように、
nums1
の長さはm+n
から始まります。これは、m
がm+n
の長さを表しているためかもしれません。nums1
(スペース) したがって、この例では、意味のない数字を表すために 0 を使用しましたが、スペースの存在を強調しました。マージ1
最初のメソッド
nums1[m:] = nums2[:n]
は、nums2
の最初の n 要素 (有効な要素) をnums1
のスペースの後半 (m+1
番目の位置から開始) に埋め込み、最後に最終的な答えが私たちが望むものになるようにそれらを並べ替えます。マージ2
2 番目のメソッドは、一見すると最初のメソッドと同じように見えますが、この質問で使用される入力データの点では、実際には
マージ3nums1
の後の残りのスペースを使用しません。 内の各要素は (nums2
を使用して) 新しいスペースを追加し、これによりappend
の長さ (スペース) が変更されます。nums1
に割り当てられているにもかかわらず、
質問を正しく理解し、疑問を解決できることを願っています!nums1 + nums2
は新しいオブジェクトを生成します。 , この変数は元のnums1
を参照しなくなり、元のnums1
はまったく影響を受けません。nums1
私が回答した質問: Python-QA
質問の意味を誤解している可能性があります
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2.
このプロンプトは
つまり、あなたの解決策は確かに間違っていますlen(nums1) >= m + n
を意味します。具体的には、nums1 の最初の m 項目と nums2 の最後の n 項目を新しい配列 (リスト) にマージし、それを並べ替える必要があります (nums1 の要素数 )m + n