質問編集履歴

15

説明の追加

2020/06/22 00:59

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,9 @@
14
14
 
15
15
  ```
16
16
 
17
+ 違う値をコードのテストに使用した場合にエラーが起きています
18
+
17
- ![違う値をコードのテストに使用した場合にエラーが起きています。](571a5ce2858ee1c2bce0731a0bb11963.png)
19
+ ![](571a5ce2858ee1c2bce0731a0bb11963.png)
18
20
 
19
21
 
20
22
 

14

説明の追加

2020/06/22 00:59

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -14,7 +14,7 @@
14
14
 
15
15
  ```
16
16
 
17
- ![イメジ説明](571a5ce2858ee1c2bce0731a0bb11963.png)
17
+ ![違う値をコドのテストに使用した場合にエラーが起きています。](571a5ce2858ee1c2bce0731a0bb11963.png)
18
18
 
19
19
 
20
20
 

13

写真の追加

2020/06/22 00:58

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -14,6 +14,8 @@
14
14
 
15
15
  ```
16
16
 
17
+ ![イメージ説明](571a5ce2858ee1c2bce0731a0bb11963.png)
18
+
17
19
 
18
20
 
19
21
  [コーディングインタビュー練習サイトの問題のリンク](http://leetcode.com/problems/merge-sorted-array/)

12

修正

2020/06/22 00:55

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -44,7 +44,7 @@
44
44
 
45
45
  n=3
46
46
 
47
- m=4
47
+ m=3
48
48
 
49
49
 
50
50
 

11

コメントの変更

2020/06/22 00:53

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -196,10 +196,10 @@
196
196
 
197
197
  }else if(tmp[0]<=nums2[n2]){
198
198
 
199
+ //tmpの方がnums2より小さいときは、
200
+
199
201
  //vectorの先頭の値をnums1に上書きする
200
202
 
201
- //currentTmpをincrementする
202
-
203
203
 
204
204
 
205
205
  //n1がmより小さいときは、上書きされるn1をtmpに退避させる

10

コメントの修正

2020/06/22 00:30

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -220,7 +220,7 @@
220
220
 
221
221
  }
222
222
 
223
- nums1[n1]=tmp[0]; //nums1の適切で、順序順のindexに戻した
223
+ nums1[n1]=tmp[0]; //nums1から一度tmpに退避したが、h再び、nums1の順序順のindexに戻した
224
224
 
225
225
  //tmpのheadを削除する。
226
226
 

9

コメントの変更

2020/06/22 00:15

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -142,7 +142,7 @@
142
142
 
143
143
  //nums2 = [2,5,6]
144
144
 
145
- //nums1の3とnums2の5では、nums1の方が大きいので、
145
+ //nums1の3とnums2の5では、nums1の方が小さいので、
146
146
 
147
147
  //list nums1は変更せず、n1++をする
148
148
 

8

コメントの修正

2020/06/22 00:12

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -108,7 +108,7 @@
108
108
 
109
109
  //nums2 = [2,5,6]
110
110
 
111
- //nums1の3とnums2の2を比べて、まずは、nums1[2]をtmpにkeepして、nums[0]をnums1[2]に代入
111
+ //nums1の3とnums2の2を比べて、まずは、nums1[2]をtmpにkeepして、nums2[0]をnums1[2]に代入
112
112
 
113
113
 
114
114
 

7

コードを少し変更

2020/06/22 00:11

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -108,7 +108,7 @@
108
108
 
109
109
  //nums2 = [2,5,6]
110
110
 
111
- //nums1の3とnums2の2を比べて、まずは、nums[2]をtmpにkeepして、nums[0]をnums1[2]に代入
111
+ //nums1の3とnums2の2を比べて、まずは、nums1[2]をtmpにkeepして、nums[0]をnums1[2]に代入
112
112
 
113
113
 
114
114
 

6

コードのコメントを見やすく修正

2020/06/22 00:09

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -70,7 +70,7 @@
70
70
 
71
71
  int n2=0;
72
72
 
73
-
73
+
74
74
 
75
75
  vector<int>tmp;
76
76
 
@@ -86,9 +86,41 @@
86
86
 
87
87
  if(n1>=m){
88
88
 
89
+ //nums1が、初期値を指定された値を超えたとき [1,2,3,0,0,0] の3を超えて0になった時、nums2をただnums1に入れていく
90
+
91
+ nums1[n1]=nums2[n2];
92
+
93
+
94
+
95
+ //n1とn2を次に進める
96
+
97
+ n1++;
98
+
99
+ n2++;
100
+
101
+
102
+
103
+ }else if(nums1[n1]>nums2[n2]){
104
+
105
+ //1の方が大きいから2をリストnums1に挿入
106
+
89
- //nums1が、初期値を指定された値を超えたとき
107
+ //nums1 = [1,2,3,0,0,0]
90
-
108
+
91
- //nums2をただnums1に入れていく
109
+ //nums2 = [2,5,6]
110
+
111
+ //nums1の3とnums2の2を比べて、まずは、nums[2]をtmpにkeepして、nums[0]をnums1[2]に代入
112
+
113
+
114
+
115
+ if(n1<m){
116
+
117
+ //tmpに保存
118
+
119
+ tmp.push_back(nums1[n1]);
120
+
121
+ }
122
+
123
+
92
124
 
93
125
  //小さいnums2の値をnums1に上書き
94
126
 
@@ -102,130 +134,100 @@
102
134
 
103
135
  n2++;
104
136
 
105
-
106
-
137
+
138
+
107
- }else if(nums1[n1]>nums2[n2]){
139
+ }else if(nums1[n1]<=nums2[n2]){
140
+
108
-
141
+ //nums1 = [1,2,3,0,0,0]
142
+
143
+ //nums2 = [2,5,6]
144
+
145
+ //nums1の3とnums2の5では、nums1の方が大きいので、
146
+
147
+ //list nums1は変更せず、n1++をする
148
+
149
+ n1++;
150
+
151
+ }
152
+
153
+ }else{
154
+
109
- //1の方が大きいから2を使う
155
+ //tmp.size()!=0
156
+
110
-
157
+ //つまり、vectorに保管してる
158
+
159
+
160
+
111
-
161
+ if(n2==n-1){
162
+
112
-
163
+ //もしnums2にもう要素が残っていないのなら、tmpに入っている値をnums1に挿入
164
+
165
+ nums1[n1]=tmp[0];
166
+
167
+
168
+
169
+ //tmpのheadを削除する。
170
+
171
+ tmp.erase(tmp.begin());
172
+
173
+ n1++;
174
+
175
+
176
+
177
+ //tmpは、上書きされる前に退避させたn1の値だから tmpとn2を比較する
178
+
179
+ }else if(tmp[0]>nums2[n2]){
180
+
181
+ //n2の方が小さいということは、nums2をnums1に上書きする
182
+
183
+ //そのため、nums1の値が消えてしまうので、tmpに退避させとく
184
+
185
+ tmp.push_back(nums1[n1]);
186
+
187
+ //上書き
188
+
189
+ nums1[n1]=nums2[n2];
190
+
191
+ n1++;
192
+
193
+ n2++;
194
+
195
+
196
+
197
+ }else if(tmp[0]<=nums2[n2]){
198
+
199
+ //vectorの先頭の値をnums1に上書きする
200
+
201
+ //currentTmpをincrementする
202
+
203
+
204
+
205
+ //n1がmより小さいときは、上書きされるn1をtmpに退避させる
206
+
207
+ //nums1 = [1,2,3,0,0,0] mとは、nums1[2]まで、
208
+
209
+ //nums2 = [2,5,6]
210
+
211
+
212
+
113
- if(n1<m){
213
+ if(n1<m){
114
-
115
- //tmpに保存
116
214
 
117
215
  tmp.push_back(nums1[n1]);
118
216
 
217
+ }else{
218
+
219
+ //0を上書きする場合は、0をtmpに退避させる必要はない
220
+
119
221
  }
120
222
 
121
-
122
-
123
- //小さいnums2の値をnums1に上書き
223
+ nums1[n1]=tmp[0]; //nums1の適切で、順序順のindex戻した
124
-
125
- nums1[n1]=nums2[n2];
126
-
127
-
128
-
129
- //n1とn2を次に進める
130
-
131
- n1++;
132
-
133
- n2++;
134
-
135
-
136
-
137
- }else if(nums1[n1]<=nums2[n2]){
138
-
139
- //2の方が大きいから、n1をn2で上書きしない
140
-
141
- //同じ場合も1を使うからn2でn1を上書きしない
142
-
143
- n1++;
144
-
145
- }
146
-
147
- }else{
148
-
149
- //tmp.size()!=0
150
-
151
- //つまり、vectorに保管してる数値はない
152
-
153
-
154
-
155
- if(n2==n-1){
156
-
157
-
158
-
159
- //nums1とnums2を足した数に行かないうちは、ループは続く
160
-
161
- //もしnums2が最後まで行ったのなら、nums1の値は、その分tmpに入っている
162
-
163
- nums1[n1]=tmp[0];
164
-
165
-
166
224
 
167
225
  //tmpのheadを削除する。
168
226
 
169
- //tmp.pop_back();
170
-
171
227
  tmp.erase(tmp.begin());
172
228
 
173
229
  n1++;
174
230
 
175
-
176
-
177
- //tmpは、上書きされる前に退避させたn1の値だから tmpとn2を比較する
178
-
179
- }else if(tmp[0]>nums2[n2]){
180
-
181
- //n2の方が小さいということは、n2をn1に上書きする
182
-
183
- //そのため、currentTmpの次の値が消えてしまうので、pushしとく
184
-
185
- tmp.push_back(nums1[n1]);
186
-
187
- //上書き
188
-
189
- nums1[n1]=nums2[n2];
190
-
191
- n1++;
192
-
193
- n2++;
194
-
195
-
196
-
197
- }else if(tmp[0]<=nums2[n2]){
198
-
199
-
200
-
201
- //vectorの先頭の値をnums1に上書きする
202
-
203
- //currentTmpをincrementする
204
-
205
-
206
-
207
- //n1がmより小さいときは、上書きされるn1をtmpに退避させる
208
-
209
- if(n1<m){ //n1==要素数 m==size
210
-
211
- tmp.push_back(nums1[n1]);
212
-
213
- }else{
214
-
215
- //mより大きいときは、 値は0だからpushしない
216
-
217
- }
218
-
219
- nums1[n1]=tmp[0];
220
-
221
- //tmpのheadを削除する。
222
-
223
- //tmp.pop_back();
224
-
225
- tmp.erase(tmp.begin());
226
-
227
- n1++;
228
-
229
231
  }
230
232
 
231
233
  }

5

わかりやすく書き換えた

2020/06/22 00:07

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -22,15 +22,15 @@
22
22
 
23
23
  ###要件定義
24
24
 
25
- 2つのソートされた整数配列nums1とnums2が与えられた場合、nums2を1つのソートされた配列としてnums1にマージします。
25
+ - 2つのソートされた整数配列nums1とnums2が与えられた場合、nums2を1つのソートされた配列としてnums1にマージします。
26
-
27
-
28
-
26
+
27
+
28
+
29
- nums1およびnums2で初期化される要素の数は、それぞれmおよびnです。
29
+ - nums1およびnums2で初期化される要素の数は、それぞれmおよびnです。
30
-
31
-
32
-
30
+
31
+
32
+
33
- nums1には、nums2からの追加の要素を保持するのに十分なスペース(m + n以上のサイズ)があると想定できます。
33
+ - nums1には、nums2からの追加の要素を保持するのに十分なスペース(m + n以上のサイズ)があると想定できます。
34
34
 
35
35
 
36
36
 

4

説明の追加

2020/06/21 22:58

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
 
36
36
 
37
- ###input される値
37
+ ###関数呼び出し時に使われる値
38
38
 
39
39
  nums1 = [1,2,3,0,0,0]
40
40
 
@@ -42,6 +42,16 @@
42
42
 
43
43
 
44
44
 
45
+ n=3
46
+
47
+ m=4
48
+
49
+
50
+
51
+ ###期待される答え
52
+
53
+ nums1 = [1,2,2,3,5,6]
54
+
45
55
 
46
56
 
47
57
  ###エラーを起こすコード

3

見やすくした

2020/06/21 22:56

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -4,10 +4,10 @@
4
4
 
5
5
 
6
6
 
7
+ ###発生しているエラー
8
+
7
9
  ```C++
8
10
 
9
- 発生しているエラー
10
-
11
11
  Line 924: Char 9: runtime error: reference binding to null pointer of type 'int' (stl_vector.h)
12
12
 
13
13
  SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/8/../../../../include/c++/8/bits/stl_vector.h:933:9
@@ -16,8 +16,6 @@
16
16
 
17
17
 
18
18
 
19
- C++
20
-
21
19
  [コーディングインタビュー練習サイトの問題のリンク](http://leetcode.com/problems/merge-sorted-array/)
22
20
 
23
21
 
@@ -46,10 +44,10 @@
46
44
 
47
45
 
48
46
 
47
+ ###エラーを起こすコード
48
+
49
49
  ```C++
50
50
 
51
- エラーを起こすコード
52
-
53
51
  class Solution {
54
52
 
55
53
  public:

2

詳細の追加

2020/06/21 22:52

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -16,220 +16,220 @@
16
16
 
17
17
 
18
18
 
19
+ C++
20
+
21
+ [コーディングインタビュー練習サイトの問題のリンク](http://leetcode.com/problems/merge-sorted-array/)
22
+
23
+
24
+
25
+ ###要件定義
26
+
27
+ 2つのソートされた整数配列nums1とnums2が与えられた場合、nums2を1つのソートされた配列としてnums1にマージします。
28
+
29
+
30
+
31
+ nums1およびnums2で初期化される要素の数は、それぞれmおよびnです。
32
+
33
+
34
+
35
+ nums1には、nums2からの追加の要素を保持するのに十分なスペース(m + n以上のサイズ)があると想定できます。
36
+
37
+
38
+
39
+ ###input される値
40
+
41
+ nums1 = [1,2,3,0,0,0]
42
+
43
+ nums2 = [2,5,6]
44
+
45
+
46
+
47
+
48
+
19
49
  ```C++
20
50
 
21
- [コーディングインタビュー練習サイトの問題のリンク](https://leetcode.com/problems/merge-sorted-array/)
22
-
23
-
24
-
25
- ###要件定義
26
-
27
- 2つのソートされた整数配列nums1nums2が与えられた場合、nums2を1つのソートされた配列としてnums1にマージします。
28
-
29
-
30
-
31
- nums1およびnums2で初期化される要素の数は、それぞれmおよびnです。
32
-
33
-
34
-
35
- nums1には、nums2からの追加の要素を保持するのに十分なスペース(m + n以上のサイズ)があると想定できます。
36
-
37
-
38
-
39
- ###input される値
40
-
41
- nums1 = [1,2,3,0,0,0]
42
-
43
- nums2 = [2,5,6]
51
+ エラーを起こすコー
52
+
53
+ class Solution {
54
+
55
+ public:
56
+
57
+ void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
58
+
59
+
60
+
61
+ int n1=0;
62
+
63
+ int n2=0;
64
+
65
+
66
+
67
+ vector<int>tmp;
68
+
69
+
70
+
71
+ while(n1<nums1.size()){
72
+
73
+
74
+
75
+ if(tmp.size()==0){
76
+
77
+
78
+
79
+ if(n1>=m){
80
+
81
+ //nums1が、初期値を指定された値を超えたとき
82
+
83
+ //nums2をただnums1に入れていく
84
+
85
+ //小さいnums2の値をnums1に上書き
86
+
87
+ nums1[n1]=nums2[n2];
88
+
89
+
90
+
91
+ //n1とn2を次に進める
92
+
93
+ n1++;
94
+
95
+ n2++;
96
+
97
+
98
+
99
+ }else if(nums1[n1]>nums2[n2]){
100
+
101
+ //1の方が大きいから2を使う
102
+
103
+
104
+
105
+ if(n1<m){
106
+
107
+ //tmpに保存
108
+
109
+ tmp.push_back(nums1[n1]);
110
+
111
+ }
112
+
113
+
114
+
115
+ //小さいnums2の値をnums1に上書き
116
+
117
+ nums1[n1]=nums2[n2];
118
+
119
+
120
+
121
+ //n1とn2を次に進める
122
+
123
+ n1++;
124
+
125
+ n2++;
126
+
127
+
128
+
129
+ }else if(nums1[n1]<=nums2[n2]){
130
+
131
+ //2の方が大きいから、n1をn2で上書きしない
132
+
133
+ //同じ場合も1を使うからn2でn1を上書きしない
134
+
135
+ n1++;
136
+
137
+ }
138
+
139
+ }else{
140
+
141
+ //tmp.size()!=0
142
+
143
+ //つまり、vectorに保管してる数値はない
144
+
145
+
146
+
147
+ if(n2==n-1){
148
+
149
+
150
+
151
+ //nums1とnums2を足した数に行かないうちは、ループは続く
152
+
153
+ //もしnums2が最後まで行ったのなら、nums1の値は、その分tmpに入っている
154
+
155
+ nums1[n1]=tmp[0];
156
+
157
+
158
+
159
+ //tmpのheadを削除する。
160
+
161
+ //tmp.pop_back();
162
+
163
+ tmp.erase(tmp.begin());
164
+
165
+ n1++;
166
+
167
+
168
+
169
+ //tmpは、上書きされる前に退避させたn1の値だから tmpとn2を比較する
170
+
171
+ }else if(tmp[0]>nums2[n2]){
172
+
173
+ //n2の方が小さいということは、n2をn1に上書きする
174
+
175
+ //そのため、currentTmpの次の値が消えてしまうので、pushしとく
176
+
177
+ tmp.push_back(nums1[n1]);
178
+
179
+ //上書き
180
+
181
+ nums1[n1]=nums2[n2];
182
+
183
+ n1++;
184
+
185
+ n2++;
186
+
187
+
188
+
189
+ }else if(tmp[0]<=nums2[n2]){
190
+
191
+
192
+
193
+ //vectorの先頭の値をnums1に上書きする
194
+
195
+ //currentTmpをincrementする
196
+
197
+
198
+
199
+ //n1がmより小さいときは、上書きされるn1をtmpに退避させる
200
+
201
+ if(n1<m){ //n1==要素数 m==size
202
+
203
+ tmp.push_back(nums1[n1]);
204
+
205
+ }else{
206
+
207
+ //mより大きいときは、 値は0だからpushしない
208
+
209
+ }
210
+
211
+ nums1[n1]=tmp[0];
212
+
213
+ //tmpのheadを削除する。
214
+
215
+ //tmp.pop_back();
216
+
217
+ tmp.erase(tmp.begin());
218
+
219
+ n1++;
220
+
221
+ }
222
+
223
+ }
224
+
225
+ }
226
+
227
+ }
228
+
229
+ };
230
+
231
+
232
+
233
+
44
234
 
45
235
  ```
46
-
47
-
48
-
49
- ```C++
50
-
51
- エラーを起こすコード
52
-
53
- class Solution {
54
-
55
- public:
56
-
57
- void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
58
-
59
-
60
-
61
- int n1=0;
62
-
63
- int n2=0;
64
-
65
-
66
-
67
- vector<int>tmp;
68
-
69
-
70
-
71
- while(n1<nums1.size()){
72
-
73
-
74
-
75
- if(tmp.size()==0){
76
-
77
-
78
-
79
- if(n1>=m){
80
-
81
- //nums1が、初期値を指定された値を超えたとき
82
-
83
- //nums2をただnums1に入れていく
84
-
85
- //小さいnums2の値をnums1に上書き
86
-
87
- nums1[n1]=nums2[n2];
88
-
89
-
90
-
91
- //n1とn2を次に進める
92
-
93
- n1++;
94
-
95
- n2++;
96
-
97
-
98
-
99
- }else if(nums1[n1]>nums2[n2]){
100
-
101
- //1の方が大きいから2を使う
102
-
103
-
104
-
105
- if(n1<m){
106
-
107
- //tmpに保存
108
-
109
- tmp.push_back(nums1[n1]);
110
-
111
- }
112
-
113
-
114
-
115
- //小さいnums2の値をnums1に上書き
116
-
117
- nums1[n1]=nums2[n2];
118
-
119
-
120
-
121
- //n1とn2を次に進める
122
-
123
- n1++;
124
-
125
- n2++;
126
-
127
-
128
-
129
- }else if(nums1[n1]<=nums2[n2]){
130
-
131
- //2の方が大きいから、n1をn2で上書きしない
132
-
133
- //同じ場合も1を使うからn2でn1を上書きしない
134
-
135
- n1++;
136
-
137
- }
138
-
139
- }else{
140
-
141
- //tmp.size()!=0
142
-
143
- //つまり、vectorに保管してる数値はない
144
-
145
-
146
-
147
- if(n2==n-1){
148
-
149
-
150
-
151
- //nums1とnums2を足した数に行かないうちは、ループは続く
152
-
153
- //もしnums2が最後まで行ったのなら、nums1の値は、その分tmpに入っている
154
-
155
- nums1[n1]=tmp[0];
156
-
157
-
158
-
159
- //tmpのheadを削除する。
160
-
161
- //tmp.pop_back();
162
-
163
- tmp.erase(tmp.begin());
164
-
165
- n1++;
166
-
167
-
168
-
169
- //tmpは、上書きされる前に退避させたn1の値だから tmpとn2を比較する
170
-
171
- }else if(tmp[0]>nums2[n2]){
172
-
173
- //n2の方が小さいということは、n2をn1に上書きする
174
-
175
- //そのため、currentTmpの次の値が消えてしまうので、pushしとく
176
-
177
- tmp.push_back(nums1[n1]);
178
-
179
- //上書き
180
-
181
- nums1[n1]=nums2[n2];
182
-
183
- n1++;
184
-
185
- n2++;
186
-
187
-
188
-
189
- }else if(tmp[0]<=nums2[n2]){
190
-
191
-
192
-
193
- //vectorの先頭の値をnums1に上書きする
194
-
195
- //currentTmpをincrementする
196
-
197
-
198
-
199
- //n1がmより小さいときは、上書きされるn1をtmpに退避させる
200
-
201
- if(n1<m){ //n1==要素数 m==size
202
-
203
- tmp.push_back(nums1[n1]);
204
-
205
- }else{
206
-
207
- //mより大きいときは、 値は0だからpushしない
208
-
209
- }
210
-
211
- nums1[n1]=tmp[0];
212
-
213
- //tmpのheadを削除する。
214
-
215
- //tmp.pop_back();
216
-
217
- tmp.erase(tmp.begin());
218
-
219
- n1++;
220
-
221
- }
222
-
223
- }
224
-
225
- }
226
-
227
- }
228
-
229
- };
230
-
231
-
232
-
233
-
234
-
235
- ```

1

情報の追加

2020/06/21 22:51

投稿

alizona
alizona

スコア126

test CHANGED
File without changes
test CHANGED
@@ -18,29 +18,29 @@
18
18
 
19
19
  ```C++
20
20
 
21
+ [コーディングインタビュー練習サイトの問題のリンク](https://leetcode.com/problems/merge-sorted-array/)
22
+
23
+
24
+
21
- 実現したいコード
25
+ ###要件定義
22
-
26
+
23
- //2つのソートされた整数配列nums1とnums2が与えられた場合、nums2を1つのソートされた配列としてnums1にマージします。
27
+ 2つのソートされた整数配列nums1とnums2が与えられた場合、nums2を1つのソートされた配列としてnums1にマージします。
24
-
25
-
26
-
28
+
29
+
30
+
27
- //nums1およびnums2で初期化される要素の数は、それぞれmおよびnです。
31
+ nums1およびnums2で初期化される要素の数は、それぞれmおよびnです。
28
-
29
-
30
-
32
+
33
+
34
+
31
- //nums1には、nums2からの追加の要素を保持するのに十分なスペース(m + n以上のサイズ)があると想定できます。
35
+ nums1には、nums2からの追加の要素を保持するのに十分なスペース(m + n以上のサイズ)があると想定できます。
32
-
33
-
34
-
35
- //nums1の値と、nums2の値を比較して、nums1のnextに接続して、nums1とnums2を行き来して、nums1にまとめる
36
+
36
-
37
-
38
-
37
+
38
+
39
- //input される値
39
+ ###input される値
40
-
40
+
41
- //nums1 = [1,2,3,0,0,0]
41
+ nums1 = [1,2,3,0,0,0]
42
-
42
+
43
- //nums2 = [2,5,6]
43
+ nums2 = [2,5,6]
44
44
 
45
45
  ```
46
46