Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <unordered_map>
- #include <string>
- #include <vector>
- #include <iostream>
- #include <set>
- #include <queue>
- #include "optimization.h"
- using namespace std;
- class Solution {
- public:
- public:
- static void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
- int i = m-1;
- int j =n-1;
- while (j >=0 && i >= 0){
- // cout << nums1[i] << ' ' << nums2[j] << ' ' << i + j +1 << '\n';
- if (nums1[i] > nums2[j]){//put greater at last
- // int k = i + j + 1; // работает правильно, если раскоментировать
- // nums1[k] = nums1[i--]; // это тоже раскоментировать
- nums1[i+j+1] = nums1[i--]; // а это закомментировать
- }
- else{
- int k = i + j + 1;
- // cout << i << ' ' << j << k << '\n';
- nums1[k] = nums2[j--];
- }
- }
- while(j >= 0){
- nums1[j] = nums2[j--];
- }
- }};
- int main(){
- vector<int> a = {1,2,3,0,0,0};
- vector<int>b = {2,5,6};
- Solution::merge(a, 3, b, 3);
- for (int i = 0; i < a.size(); i++){
- cout << a[i] << ' ';
- }
- }
Add Comment
Please, Sign In to add comment