前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【LeetCode两题选手】算法类题目(8.8)

【LeetCode两题选手】算法类题目(8.8)

作者头像
看、未来
发布2020-08-25 11:55:37
2480
发布2020-08-25 11:55:37
举报

题一:最长上升子序列

给定一个无序的整数数组,找到其中最长上升子序列的长度。

代码语言:javascript
复制
示例:

输入: [10,9,2,5,3,7,101,18]
输出: 4 
解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。

说明:

代码语言:javascript
复制
可能会有多种最长上升子序列的组合,你只需要输出对应的长度即可。
你算法的时间复杂度应该为 O(n2) 。

进阶: 你能将算法的时间复杂度降低到 O(n log n) 吗?

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/longest-increasing-subsequence 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码实现

动态+二分

代码语言:javascript
复制
	int lengthOfLIS(vector<int>& nums) {
        int ans = 1;
        if(nums.size()==0) return 0;
        vector<int> dp(nums.size(), 1);
        for(int i=1;i<nums.size();i++){
            for(int j=0;j<i;j++){
                if(nums[j]<nums[i]){
                    dp[i] = max(dp[i], dp[j]+1);
                    
                }
            }
            ans = max(ans, dp[i]); 
        }
        return ans;
    }

题二:最大数

给定一组非负整数,重新排列它们的顺序使之组成一个最大的整数。

代码语言:javascript
复制
示例 1:

输入: [10,2]
输出: 210
代码语言:javascript
复制
示例 2:

输入: [3,30,34,5,9]
输出: 9534330
代码语言:javascript
复制
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/largest-number
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

代码实现

代码语言:javascript
复制
		bool cmp(int a, int b)
    	{
    		string sa = to_string(a) + to_string(b);
    		string sb = to_string(b) + to_string(a);
    		if (sa.compare(sb) > 0) return true;
    	    else return false;
    	}         
     
    class Solution {
    public:
        
    	string largestNumber(vector<int>& nums) {
    		string res = "";
    		sort(nums.begin(),nums.end(),cmp);
            if (nums[0] == 0) return "0";
    		for (int i = 0; i < nums.size(); i++)
    		{
    			res += to_string(nums[i]);
    		}
    		return res;
    	}
    };

思路很直接,周赛一题选手已就位

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-08-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题一:最长上升子序列
    • 代码实现
    • 题二:最大数
      • 代码实现
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档