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

【每日刷题】Day123

【每日刷题】Day123

🥕个人主页:开敲🍉

🔥所属专栏:每日刷题🍍

🌼文章目录🌼

1. 673. 最长递增子序列的个数 - 力扣(LeetCode)

2. LCR 083. 全排列 - 力扣(LeetCode)

1. 673. 最长递增子序列的个数 - 力扣(LeetCode)

//思路:子序列动态规划问题。

//这题难度还是比较大的,有各种细节处理。

class Solution {

public:

    int findNumberOfLIS(vector<int>& nums)

    {

        int n = nums.size(),maxval = 1,ans = 0;

        vector<int> len(n,1);

        vector<int> count(n,1);

        for(int i = 1;i<n;i++)

        {

            for(int j = i-1;j>=0;j--)

            {

                if(nums[i]>nums[j])

                {

                    if(len[j]+1>len[i])

                    {

                        len[i] = len[j]+1;

                        maxval = maxval>len[i]?maxval:len[i];

                        count[i] = count[j];

                    }

                    else if(len[j]+1==len[i]) count[i]+=count[j];

                }

            }

        }

        for(int i = 0;i<n;i++)

        {

            if(len[i]==maxval) ans+=count[i];

        }

        return ans;

    }

};

2. LCR 083. 全排列 - 力扣(LeetCode)

//思路:深搜+回溯+剪枝。

class Solution {

public:

    vector<vector<int>> ans;

    vector<int> arr;

    bool check[7];//check:检查当 i 位置的数是否已经排入

    void _permute(vector<int>& nums)

    {

        if(arr.size()==nums.size())//递归出口

        {

            ans.push_back(arr);//排完后将 arr 放入 ans 中

            return;

        }

        for(int i = 0;i<nums.size();i++)

        {

            if(!check[i])//遍历nums,判断 i 位置数是否已经排入,如果没排入则排入

            {

                arr.push_back(nums[i]);

                check[i] = true;//排入后将 i 位置设为 "已排入" 状态

                _permute(nums);//深搜

                arr.pop_back();//返回时需要将最后一个排入的数排出

                check[i] = false;//并将其设为 "未排入" 状态

            }

        }

    }

    vector<vector<int>> permute(vector<int>& nums)

    {

        _permute(nums);

        return ans;

    }

};

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java 21的Enhanced Deprecation的笔记
  • Android生成Java AIDL
  • URL.createObjectURL 与 FileReader:Web 文件处理两大法宝的对比
  • AI客服机器人开启企业客户服务新纪元
  • 『功能项目』眩晕图标显示【52】
  • 『功能项目』怪物的有限状态机【42】
  • 语言的枚举
  • Python编程 - 异常处理与文件读写
  • Rust编写Windows服务
  • Python精选200Tips:121-125
  • Unity-Transform-坐标转换
  • Prometheus+grafana+kafka_exporter监控kafka运行情况
  • Python酷库之旅-第三方库Pandas(117)
  • 人工智能在现代科技中的应用和未来发展趋势
  • 微信小程序中巧妙使用 wx:if 和 catchtouchmove 实现弹窗禁止页面滑动功能
  • 时间复杂度分析经典问题——最大子序列和
  • 03Go 类型总结
  • CSS 专业技巧
  • ESLint简单操作
  • golang中接口赋值与方法集
  • JS专题之继承
  • Mysql数据库的条件查询语句
  • open-falcon 开发笔记(一):从零开始搭建虚拟服务器和监测环境
  • SpringBoot几种定时任务的实现方式
  • Swoft 源码剖析 - 代码自动更新机制
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • 阿里云前端周刊 - 第 26 期
  • 计算机常识 - 收藏集 - 掘金
  • 开源地图数据可视化库——mapnik
  • 聊聊flink的BlobWriter
  • 聊聊flink的TableFactory
  • 面试总结JavaScript篇
  • 如何合理的规划jvm性能调优
  • 什么是Javascript函数节流?
  • 树莓派 - 使用须知
  • 详解移动APP与web APP的区别
  • 进程与线程(三)——进程/线程间通信
  • 移动端高清、多屏适配方案
  • ​​快速排序(四)——挖坑法,前后指针法与非递归
  • ​插件化DPI在商用WIFI中的价值
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • ###项目技术发展史
  • #162 (Div. 2)
  • #C++ 智能指针 std::unique_ptr 、std::shared_ptr 和 std::weak_ptr
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #Linux(帮助手册)
  • ()、[]、{}、(())、[[]]命令替换
  • (02)Hive SQL编译成MapReduce任务的过程
  • (31)对象的克隆
  • (33)STM32——485实验笔记
  • (C语言)球球大作战
  • (javascript)再说document.body.scrollTop的使用问题
  • (pytorch进阶之路)扩散概率模型
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947