LintCode-两数组的交 II
来源:互联网 发布:网络空间用什么来描绘 编辑:程序博客网 时间:2024/05/16 04:38
题目描述:
计算两个数组的交
注意事项
每个元素出现次数得和在数组里一样
答案可以以任意顺序给出
样例:
nums1 = [1, 2, 2, 1]
, nums2 = [2, 2]
, 返回 [2, 2]
.
做题思路:先给两个数组进行排序,方便比较,在两个数组长度之内进行比较,如果数值相等,放进新数组中,然后两个数组的下标同时移动,如果不相等,还需要分成两种情况,由于数组是已经排序好的,所以,如果1数组当前的数值大于2数组当前数值,则2数组下标向下挪,反之也是如此。
关键代码:
class Solution {public: /** * @param nums1 an integer array * @param nums2 an integer array * @return an integer array */ vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { // Write your code here int i=0,j=0; vector<int> v; sort(nums1.begin(),nums1.end()); sort(nums2.begin(),nums2.end()); while(i<nums1.size()&&j<nums2.size()) { if(nums1[i]==nums2[j]) {v.push_back(nums1[i]); i++; j++; } else if(nums1[i]>nums2[j]) j++; else i++; } return v; }};
做题思路:这一题做了很长时间,问题在于我是做完了两数之和那道题之后,再做的这道题,用的思路和“两数之和”一样,所以出现了很多问题,因为刚开始用了两个for循环,所以比较过程中,会出现重复的情况,改了循环范围之后,出现了数组越界情况,所以改变了思路,觉得不能不排序直接进行比较。
阅读全文
0 0
- LintCode:两数组的交 II
- LintCode 548 两数组的交 II
- LintCode【两数组的交II】
- 【lintcode笔记】两数组的交 II
- LintCode-两数组的交 II
- lintcode 两数组的交II
- 两数组的交 II -LintCode
- LintCode 两数组的交 II
- 两数组的交 II-LintCode
- lintcode 547两数组的交 lintcode 548两数组的交II
- LintCode做题记录-两数组的交 II
- lintcode 刷题-两数组的交 II Python
- Lintcode——两数组的交 II
- LintCode-[容易] 548. 两数组的交II
- LintCode:两数组的交
- LintCode:两数组的交
- 两数组的交-LintCode
- lintcode 两数组的交
- hibernate-继承映射-15(不太重要)
- 你需要尝试的25个Android第三方库(现在开始还不迟)
- python在pandas.DataFrame添加一行
- cas server的使用
- [LeetCode] Decode Ways
- LintCode-两数组的交 II
- Android Studio JNI学习之(2)-JAVA与原生代码通信
- linux虚拟机——网络模式
- Git正常pull失败,无法正常push到远程端
- 使用 spring框架 获取 session
- 记录一些常用的utils方法5
- 二维数组的查找
- JS中的迭代器和生成器
- Linux的多线程--同步与互斥