leetcode 321: Create Maximum Number
来源:互联网 发布:淘宝修图多少钱一张 编辑:程序博客网 时间:2024/06/12 21:30
The algorithm is quite difficult, you need to think step by step to come up with the idea. I learned the algorithm here.
class Solution {public: vector<int> maxNumber(vector<int>& nums1, vector<int>& nums2, int k) { vector<int> res; int size1=nums1.size(); int size2=nums2.size(); for(int i=max(0,k-size2);i<=k&&i<=size1;i++) { vector<int> temp=merge(maxArray(nums1,i),maxArray(nums2,k-i),k); if(greater(temp,0,res,0)) res=temp; } return res; } vector<int> maxArray(vector<int>& num,int k) { vector<int> res; for(int i=0;i<num.size();i++) { while(num.size()-i+res.size()>k&&!res.empty()&&num[i]>res.back()) res.pop_back(); if(res.size()<k) res.push_back(num[i]); } return res; } vector<int> merge(vector<int> nums1,vector<int> nums2,int k) { vector<int> res; int i=0,j=0; while(res.size()<k) res.push_back(greater(nums1,i,nums2,j)?nums1[i++]:nums2[j++]); return res; } bool greater(vector<int>& nums1,int i,vector<int>& nums2,int j) { while(i<nums1.size()&&j<nums2.size()&&nums1[i]==nums2[j]) { i++; j++; } return j==nums2.size()||(i<nums1.size()&&nums1[i]>nums2[j]); }};
0 0
- leetcode 321: Create Maximum Number
- LeetCode #321: Create Maximum Number
- LeetCode(321)Create Maximum Number
- leetcode Create Maximum Number
- Create Maximum Number | LeetCode
- leetcode Create Maximum Number
- LeetCode Create Maximum Number
- leetcode - Create Maximum Number
- [LeetCode] Create Maximum Number
- [LeetCode] Create Maximum Number
- leetcode:greedy:Create Maximum Number(321)
- Leetcode 321 - Create Maximum Number(贪心)
- leetcode 321. Create Maximum Number
- LeetCode 321. Create Maximum Number
- LeetCode-321. Create Maximum Number
- leetcode笔记--Create Maximum Number
- leetcode.321. Create Maximum Number
- [LeetCode]321. Create Maximum Number
- linux系统下实现聊天室
- Apache Spark 学习笔记 (3) 安装Ambari
- iOS 图片压缩
- Java学习笔记(73)-----------ThreadLocal
- 每日一算法5--文本的倒序输出
- leetcode 321: Create Maximum Number
- 9、抽象类与接口
- AngularJS进阶(三十)AngularJS项目开发技巧之图片预加载
- Android Image点击效果
- 建造者模式
- Java类的连接与初始化
- Java学习笔记(74)------------线程池
- 手把手教你写Com(Step by Step COM Tutorial)
- 超分辨学习之一___超分辨率复原