88. Merge Sorted Array
2016-05-26 15:10
309 查看
88. Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array.Note:
You may assume that nums1 has enough space (size that is greater or equal to m + n) to hold additional elements from nums2. The number of elements initialized in nums1 and nums2 are m and n respectively.
Analysis:
程序还是写的规范一点好,准确易懂。
比如
i=5; nums1(i-1)=nums2(--i);
不同的编译器可能编译结果不一样吧。
Source Code(C++):
#include <iostream> #include <vector> using namespace std; class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { int merge_index = m+n-1, nums1_index=m-1, nums2_index=n-1; while(nums1_index>=0 && nums2_index>=0) { nums1.at(merge_index--) = nums1.at(nums1_index)>nums2.at(nums2_index) ? nums1.at(nums1_index--):nums2.at(nums2_index--);//注意等式先运算右边再运算左边 } while(nums1_index>=0) { nums1.at(merge_index--) = nums1.at(nums1_index--); } while(nums2_index>=0) { nums1.at(merge_index--) = nums2.at(nums2_index--); } } }; int main() { Solution sol; vector<int> nums1(9), nums2; int m=5, n=4; nums1.at(0)=1; nums1.at(1)=3; nums1.at(2)=5; nums1.at(3)=7; nums1.at(4)=9; nums2.push_back(2); nums2.push_back(4); nums2.push_back(6); nums2.push_back(7); sol.merge(nums1, m, nums2, n); for (int i=0; i<nums1.size(); i++) { cout << nums1.at(i); } return 0; }
相关文章推荐
- 使用LeakCanary遇到的问题 就是不弹出来
- 比较两个日期相差多少天
- iOS NSDate的基本使用,获取时间戳
- ViewDragHelper解读
- 操作系统--存储管理
- php页面判断是 iphone还是andriod的浏览器&通过 URL types在浏览器打开app(转)
- iOS开发之遍历Model类的属性并完善使用Runtime给Model类赋值
- 红黑树的插入与删除
- 缩放图片代码
- [Linux]修复vim异常
- Java基本概念:集合类(Collection)List/Set/Map... 的区别和联系
- 使用第三方工具,将JavaBean对象或者List<JavaBean/String/Integer>或Set或Map对象转成JSON
- 深入理解异步加载--Handler和Looper源码解析(2)
- cordova 和android studio的第一个项目(常见问题注意!)
- 监听器
- 字符串类中运算符重载出现的一个问题
- CI重定向:php(codeigniter)中如何重定向
- Java学习总结
- 九度题目1005:Graduate Admission
- 博客收集