当前位置: 首页 > wzjs >正文

南宁制作网站多少钱网站关键词优化建议

南宁制作网站多少钱,网站关键词优化建议,佛山做seo推广公司,网站建设公司石家庄题目 给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。 子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。 示例 示…

题目

给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。

子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。

示例

示例 1:

输入:nums = [10,9,2,5,3,7,101,18]
输出:4
解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。

示例 2:

输入:nums = [0,1,0,3,2,3]
输出:4

示例 3:

输入:nums = [7,7,7,7,7,7,7]
输出:1

分析

为了求解最长严格递增子序列(LIS)的长度,我们可以使用贪心算法结合二分查找,将时间复杂度优化,这是目前解决该问题的最优解法之一。

贪心+二分查找

贪心策略:维护一个数组 tails,其中 tails[i] 表示长度为 i+1 的严格递增子序列的最小末尾元素。通过不断更新这个数组,最终数组的长度即为最长严格递增子序列的长度。

二分查找:对于当前遍历到的元素 num,在 tails 中找到第一个大于等于 num 的位置,并用 num 替换该位置的元素。若 num 大于 tails 中的所有元素,则直接将其添加到 tails 末尾。

 时间复杂度:O(nlogn), n 是数组的长度

空间复杂度:O(n)

#include <vector>
#include <algorithm>class Solution {
public:int lengthOfLIS(std::vector<int>& nums) {std::vector<int> tails;for (int num : nums) {// 在 tails 中查找第一个大于等于 num 的位置auto it = std::lower_bound(tails.begin(), tails.end(), num);if (it == tails.end()) {// num 比所有元素都大,添加到末尾tails.push_back(num);} else {// 替换第一个大于等于 num 的元素为 num*it = num;}}return tails.size();}
};

知识充电

lower_bound 函数

在 C++ 中,lower_bound 是 <algorithm> 头文件中提供的一个算法,用于在 有序序列 中查找满足特定条件的元素位置。它的核心功能是找到第一个 不小于(即大于或等于)给定值的元素的位置。

lower_bound 本质是二分查找的一种实现,时间复杂度为 O(log n),常用于高效查找有序序列中的位置。

定义

template<class ForwardIt, class T>
ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value);template<class ForwardIt, class T, class Compare>
ForwardIt lower_bound(ForwardIt first, ForwardIt last, const T& value, Compare comp);
  • 参数
    • first 和 last:指定查找的区间(左闭右开,即 [first, last))。
    • value:要查找的值。
    • comp(可选):自定义比较函数,用于定义 “小于” 的规则(默认为 <)。
  • 返回值:指向第一个 不小于 value 的元素的迭代器。如果所有元素都小于 value,则返回 last
http://www.dtcms.com/wzjs/199599.html

相关文章:

  • 网站开发外包方案广州最新疫情通报
  • 大气网站模板免费下载谷歌浏览器网页版入口手机版
  • 烟台优化网站建设中国职业培训在线
  • 门头沟青岛网站建设西安seo全网营销
  • 成都快速做网站网络推广运营外包公司
  • 建设农家书屋官方网站合肥正规的seo公司
  • 政府网站管理推进集约建设东莞百度快照优化排名
  • 做赌博网站犯法吗百度平台商家客服
  • 中铁建设集团企业门户上海快速优化排名
  • 电商模板哪个网站好2024年8月爆发新的大流行病毒吗
  • php做网站都需要学什么永久免费wap自助建站
  • 网站设计一般包括哪几个部分深圳网站搜索优化工具
  • 如何在网上建立网站搜百度盘
  • 北京网站建设排行关键词排名查询工具有什么作用?
  • 济宁祥云网站建设百度seo排名查询
  • 新河镇网站制作网站优化的关键词
  • 静态网页文件合肥网站推广优化公司
  • xyz后缀的网站摘抄一则新闻
  • 房地产网站推广怎样建立自己的网站平台
  • 网站系统怎么建设百度推广方式有哪些
  • 网页制作师招聘武汉seo创造者
  • 上海网站建设哪个平台好seo关键词排名价格
  • 网站以前在百度能搜索不到了seo标题优化关键词
  • 网站建设洽谈问题百度竞价优缺点
  • 普通网站和营销型网站的区别是什么如何制作网站最简单的方法
  • 做写真素材网站世界最新新闻
  • 中学校园网网站建设规划书东方网络律师团队
  • 衡阳做网站公司长沙网站推广工具
  • c 做网站怎么显示歌词5151app是交友软件么
  • 山门做网站上海关键词优化推荐