【LeetCode】HOT 100(7)

news2024/11/24 8:47:14

题单介绍:

精选 100 道力扣(LeetCode)上最热门的题目,适合初识算法与数据结构的新手和想要在短时间内高效提升的人,熟练掌握这 100 道题,你就已经具备了在代码世界通行的基本能力。

目录

题单介绍:

题目:42. 接雨水 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

题目:46. 全排列 - 力扣(Leetcode)

题目的接口:

解题思路:

代码:

过过过过啦!!!!

写在最后:


题目:42. 接雨水 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    int trap(vector<int>& height) {

    }  
};

解题思路:

 这道题又是动态规划的题目,但是也可以不用动态规划做,

这里我用的是单调栈:

遍历数组,如果遇到小的值就入栈,如果遇到比栈顶大的值就开始算雨水面积,

让栈内的有效数据保持单调递减的状态,

这个思路的核心就是找出右边更高的柱子,开始结算雨水,

然后以这个柱子为新的左柱子,继续往右边找相对更高的柱子。

代码入下:

代码:

class Solution {
public:
    int trap(vector<int>& height) {
        int ans = 0;
        stack<int> st;
        for(int i = 0; i < height.size(); i++) { //遍历
            while(!st.empty() && height[st.top()] < height[i]) { //遇到较大的值
                int top = st.top();
                st.pop();
                if(st.empty()) break; //如果是栈内只有一个值的情况,就跳过(没法接雨水)
                int l = st.top();
                int r = i;
                int h = min(height[r], height[l]) - height[top]; //矮柱子的高度 - 中间的高度 
                ans += (r - l - 1) * h;
            }
            st.push(i);
        }
        return ans;
    }  
};

过过过过啦!!!!

题目:46. 全排列 - 力扣(Leetcode)

题目的接口:

class Solution {
public:
    vector<vector<int>> permute(vector<int>& nums) {

    }
};

解题思路:

这道题其实就是经典的搜索题目,

或者说是搜索的入门题目,

学搜索必刷题型,全排列,

我之前在蓝桥杯刷题的时候也有写深度优先搜索相关的博客,

感兴趣的可以去看一下,

这里我就不废话,直接上代码:

代码:

class Solution {
public:
    vector<int> v;
    vector<vector<int>> vv;
    vector<vector<int>> permute(vector<int>& nums) {
        dfs(nums);
        return vv;
    }
private:
    void dfs(vector<int>& nums) {
        if(v.size() == nums.size()) {
            vv.push_back(v);
            return;
        }
        for(int i = 0; i < nums.size(); i++) {
            if(nums[i] != 99) { //这边是巧妙的记录已经使用过的值,因为排列中只允许一个数出现一次
                int used = nums[i];

                v.push_back(nums[i]);
                nums[i] = 99;
                dfs(nums);
                nums[i] = used;
                v.pop_back();
            }
        }
    }
};

过过过过啦!!!!

写在最后:

以上就是本篇文章的内容了,感谢你的阅读。

如果感到有所收获的话可以给博主点一个哦。

如果文章内容有遗漏或者错误的地方欢迎私信博主或者在评论区指出~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言之基于链表实现排序

题目&#xff1a;通过链表实现从小到大进行排序 代码&#xff1a; #include <stdio.h> #include <stdlib.h> #define N 9//通过链表实现从小到大排序 typedef struct node {int data;struct node *next; } NODE;//fun函数实现是将头结点的单向链表节点…

chatgpt赋能python:Python怎么倒序输出中文字典?

Python怎么倒序输出中文字典&#xff1f; 作为一门高效、易上手的编程语言&#xff0c;Python在数据处理、科学计算、机器学习等领域都有广泛应用。而对于SEO工程师来说&#xff0c;Python也是一款非常实用的工具。那么今天&#xff0c;我们就来探讨一下Python怎么倒序输出中文…

Sqlite 比较,安装,使用,个人总结

文章目录 什么是sqlite&#xff0c;和别的数据库有什么差别&#xff1f;sqlite介绍什么是边缘存储&#xff1f; sqlite存储上限sqlite和别的数据库的区别 Sqlite本地安装sqlite 在C# .net webapi 软件中的使用 什么是sqlite&#xff0c;和别的数据库有什么差别&#xff1f; sq…

【JavaSE】Java(五十七):核心要点总结

文章目录 1. HashMap 的实现原理2. Set 有哪些实现类3. HashSet 的实现原理4. 如何实现数组和List之间的转换5. Java中的迭代器 1. HashMap 的实现原理 HashMap 是一种基于哈希表的数据结构&#xff0c;它的实现原理简单来说就是将键值对存储在一个数组中&#xff0c;并通过哈希…

深入理解深度学习——注意力机制(Attention Mechanism):自注意力(Self-attention)

分类目录&#xff1a;《深入理解深度学习》总目录 相关文章&#xff1a; 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;基础知识 注意力机制&#xff08;AttentionMechanism&#xff09;&#xff1a;注意力汇聚与Nadaraya-Watson核回归 注意力机制&#…

强化服务器安全!CentOS 7如何使用fail2ban防范SSH暴力破解攻击?

前言 本文主要讲解centos7操作系统下&#xff0c;如何使用fail2ban防范SSH暴力破解。 &#x1f3e0;个人主页&#xff1a;我是沐风晓月 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是沐风晓月&#xff0c;阿里云社区博客专家 &#x1f609;&#x1f609; &#x1…

如何使用Python生成跑马灯视频

在这篇博客中&#xff0c;我将向您展示如何使用Python语言生成一个简单的跑马灯视频。我们将使用OpenCV和Pillow两个库来实现这个功能。 安装依赖库 首先&#xff0c;我们需要安装opencv-python和Pillow两个库。您可以使用以下命令来安装它们&#xff1a; pip install opencv…

Navicat 设置PostgreSQL数据库的表主键ID自增

文章目录 1 新建序列1.1 手动新建1.2 SQL语句新建 2 设置主键自增 1 新建序列 1.1 手动新建 选择 其他->序列 选择一个模式&#xff08;例如public&#xff09;&#xff0c;然后选择新增序列。 设置序列参数 刷新序列列表即可看到新建的序列 注意&#xff1a; 序列的最大…

C语言实现2048小游戏

大部分同学学习C语言编程以后不知道能通过什么样的项目才可以锻炼自己的思维功力&#xff0c;2048相信大家都应该熟悉&#xff0c;不管是手机上还是网页版的相信大家都玩过,这个简单的控制台版本的游戏是我曾经在伟易达上班时一个嵌入式应用游戏部门的大佬设计的&#xff0c;适…

简单使用gateway,以及gateway所需要的依赖

先声明&#xff0c;使用gateway需要有一定的SpringCloud的基础&#xff0c;再来使用时会看的很明白&#xff0c;使用前需要先开nacos服务&#xff0c;&#xff0c;确定无误。 下面直接开始 首先我们需要两个原来通信的模块&#xff0c;这里分别是service-const与service-provid…

《导航帖》-全系列软考A计划

专栏分享 点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 文章目录 &#x1f449;关于作者&#x1f449;前提&#x1f449;链接追踪&#x1f449…

高通 Camera HAL3:项目开发技术点总结

做高通 Camera HAL3开发的一些技术点的总结、整理。 做个记录&#xff0c;方便后续查阅。 1.目录、so、配置文件 productName是项目名 out Target路径&#xff1a;\out\target\product\productName\chi-cdk&#xff1a;\vendor\qcom\proprietary\chi-cdk\ldc node&#xff1…

【Hive】安装配置及导入Hdfs数据

知识目录 一、写在前面&#x1f495;二、Hive的安装与配置✨2.1 Hive简介2.2 上传与解压2.3 拷贝MySQL驱动2.4 hive-site.xml文件2.5 启动hive 三、导入Hdfs数据到Hive✨3.1 修改Hadoop集群配置3.2 初始化3.3 创建表3.4 从Hdfs导入数据 四、总结撒花&#x1f60a; 一、写在前面…

【Leetcode】贪心 区间问题 | 用最小数量的箭引爆气球、无重叠区间、划分字母区间、合并区间

452 用最少数量的箭引爆气球 更像一个重叠区间问题&#xff0c;贪心策略&#xff1a;应该在重叠最多处射出。 按区间左端点递增序进行排序&#xff0c;左端点相同时&#xff0c;按右端点递增序排序。 现在欲射穿气球 i i i&#xff0c;当发现相邻的两个区间有重叠时&#xff…

[230604] 听力TPO66汇总·上篇| C1 L1 C2|10:20~12:00

目录​​​​​​​ Science Fiction And Sci-fi-C1 错题分析 C1-3 细节双选题 C1 精听练习 做题笔记 Financial Advice-C2 全对 C2 精听练习 Sleep-L1 错题分析 L1-4 细节题 L1-5 细节双选题 L1 精听练习 做题笔记 词汇&#xff1a;http://t.csdn.cn/Zhuws 两篇对…

编译型语言与解释型语言的区别

用比喻来明编译型语言和解释型语言的区别&#xff1a; 假设你要理解一本书&#xff08;源代码&#xff09;将转化为一篇演讲稿&#xff08;机器代码&#xff09;。 编译型语言类似于你将整本书翻译成一篇演讲稿。你需要在事先对整本书进行翻译&#xff0c;将其转化为一份完整…

chatgpt赋能python:Python如何使用while函数倒序输出数字?

Python如何使用while函数倒序输出数字&#xff1f; Python是一种高级编程语言&#xff0c;它易于学习、易于使用&#xff0c;这使得它成为了非常受欢迎的编程语言之一。Python在各种应用程序中都有着广泛的应用&#xff0c;从Web开发到数据分析&#xff0c;甚至是人工智能等领…

脑疾病患者福音,又一家脑机接口公司完成首次人体试验

近日&#xff0c;脑机接口公司Precision Neuroscience宣布完成其神经植入系统的首次人体临床试验&#xff0c;该公司设计的植入系统在1平方厘米的面积上有1024个微型电极&#xff0c;这些电极被嵌入到与大脑表面一致的柔性薄膜中。这种薄膜只有人类头发厚度的五分之一&#xff…

chatgpt赋能python:Python中如何倒着输出字符串

Python中如何倒着输出字符串 在Python编程中&#xff0c;字符串是一种不可避免的数据类型&#xff0c;我们往往需要对字符串进行各种操作。其中&#xff0c;倒着输出字符串是一项基本的操作&#xff0c;对于初学者来说&#xff0c;可能并不是很容易理解。本文将介绍如何使用Py…

【算法题001】面试题 01.01. 判定字符是否唯一

题目来源&#xff1a;《程序员面试金典&#xff08;第 6 版&#xff09;》 1、Problem: 面试题 01.01. 判定字符是否唯一 文章目录 面试题 01.01. 判定字符是否唯一一、题目描述二、解决方案&#xff08;一&#xff09;方案一1、解题思路2、解题方法3、复杂度4、代码实现 &…