随笔分类 - LeetCode笔记
【每日练习】将字符串翻转到单调递增、使字符串平衡的最少删除次数
摘要:将字符串翻转到单调递增 https://leetcode.cn/problems/flip-string-to-monotone-increasing/ 如果一个二进制字符串,是以一些 0(可能没有 0)后面跟着一些 1(也可能没有 1)的形式组成的,那么该字符串是 单调递增 的。 给你一个二进制字
【LeetCode递归】括号生成,使用dfs
摘要:括号匹配 数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。 示例 1: 输入:n = 3 输出:["((()))","(()())","(())()","()(())","()()()"] 示例 2: 输入:n = 1 输出:["()"] 提示: 1 <
合并区间(区间排序,vector的动态扩容的应用)
摘要:以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。 示例 1: 输入:intervals = [[1,3],[2,6],[8,10],[
合并两个无序数组
摘要:合并两个无序数组 现在我有两个无序的数组(长度不相等),我现在想将两个数组合并 #include <iostream> #include <vector> using namespace std; vector<int> mergeArrays(vector<int>& arr1, vector<i
【会员题】253. 会议室 II
摘要:会议室II 给定一个会议时间安排的数组,每个会议时间都会包括开始和结束的时间s1,e1,s2,e2]..](si<ei) ,为避免会议冲突,同时要考虑充分 利用会议室资源,请你计算至少需要多少间会议室,才能满足这些会议安排。 示例1 输入: [[0,30],[5,10],[15,20]] 输出: 2
【LeetCode动态规划#17】知道秘密的人,维护多个dp数组
摘要:### 知道秘密的人数 在第 1 天,有一个人发现了一个秘密。 给你一个整数 delay ,表示每个人会在发现秘密后的 delay 天之后,每天 给一个新的人 分享 秘密。同时给你一个整数 forget ,表示每个人在发现秘密 forget 天之后会 忘记 这个秘密。一个人 不能 在忘记秘密那一天及
【LeetCode回溯算法#12】二叉树的直径,树形dp的前置内容(使用dfs)
摘要:### 二叉树的直径 给你一棵二叉树的根节点,返回该树的 **直径** 。 二叉树的 **直径** 是指树中任意两个节点之间最长路径的 **长度** 。这条路径可能经过也可能不经过根节点 `root` 。 两节点之间路径的 **长度** 由它们之间边数表示。 **示例 1:** ``` 输入:roo
【LeetCode动态规划#16】矩阵的最小路径和、三角形的最小路径和
摘要:### 矩阵的最小路径和 给定一个包含非负整数的 `*m* x *n*` 网格 `grid` ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 **说明:**一个机器人每次只能向下或者向右移动一步。 **示例 1:** ``` 输入:grid = [[1,3,1],[1,5,1],[
【LeetCode动态规划#15】最长公共子序列II
摘要:### 最长公共子序列(二) #### 描述 给定两个字符串str1和str2,输出两个字符串的最长公共子序列。如果最长公共子序列为空,则返回"-1"。目前给出的数据,仅仅会存在一个最长的公共子序列 数据范围:0≤∣���1∣,∣���2∣≤20000≤∣*s**t**r*1∣,∣*s**t**r*
【图论#02】岛屿系列题(数量、周长、最大面积),flood fill算法的代码实现与优化
摘要:### 岛屿数量 给你一个由 `'1'`(陆地)和 `'0'`(水)组成的的二维网格,请你计算网格中岛屿的数量。 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 此外,你可以假设该网格的四条边均被水包围。 **示例 1:** ``` 输入:grid = [ ["1"
【图论#01】邻接表的应用以及深度优先搜索
摘要:先说一个结论:图论没什么高级的 二叉树也是图的一种,你不是天天见吗。。。 当然,既然图论是一个比二叉树更大的概念,那么二者肯定还是有不同的,[详见](https://programmercarl.com/%E5%9B%BE%E8%AE%BA%E6%B7%B1%E6%90%9C%E7%90%86%E8
【米〇游仿真题】汇总
摘要:### 只出现一次的数II ##### 描述 在动物牛的世界中,有一群牛,它们以整数数组的形式排列。除了其中两个牛只出现一次外,其他牛都恰好出现两次。请你设计一个算法,找出并返回那两个只出现一次的牛的编号。返回顺序按照递增序。 ##### 示例1 输入: ``` [1, 1, 2, 2, 3, 3,
【ACM专项练习#03】打印图形、栈的合法性、链表操作、dp实例
摘要:### 运营商活动 #### 题目描述 小明每天的话费是1元,运营商做活动,手机每充值K元就可以获赠1元,一开始小明充值M元,问最多可以用多少天? 注意赠送的话费也可以参与到奖励规则中 #### 输入 输入包括多个测试实例。每个测试实例包括2个整数M,K(2 using namespace std;
【ACM专项练习#02】输入整行字符串、输入值到vector、取输入整数的每一位
摘要:### 输入整行字符串 #### 平均绩点 ##### 题目描述 每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。 ##### 输入 有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。 ####
【LeetCode剑指offer#06】实现pow函数、计算x的平方根
摘要:### 实现pow函数 实现 [pow(*x*, *n*)](https://www.cplusplus.com/reference/valarray/pow/) ,即计算 `x` 的整数 `n` 次幂函数(即,`xn` )。 **示例 1:** ``` 输入:x = 2.00000, n = 10
【ACM专项练习#02】整行字符串、输入vector、打印图形、处理n组数据以及链表操作等
摘要:### 输入整行字符串 #### 平均绩点 ##### 题目描述 每门课的成绩分为A、B、C、D、F五个等级,为了计算平均绩点,规定A、B、C、D、F分别代表4分、3分、2分、1分、0分。 ##### 输入 有多组测试样例。每组输入数据占一行,由一个或多个大写字母组成,字母之间由空格分隔。 ####
【ACM专项练习#01】基本输入输出,如何加减
摘要:关于ACM,牛客其实也有专门的模拟练习:https://ac.nowcoder.com/acm/contest/5657#question 做这个也可以 ### 关于while(cin>>n) 在处理输入时,cin >> n; while (n--) 和 while (cin >> n) 是两种常见
【LeetCode剑指offer#05】回文链表的两种解法+删除链表中间节点(链表的基本操作)
摘要:### 回文链表 给你一个单链表的头节点 head ,请你判断该链表是否为回文链表。如果是,返回 true ;否则,返回 false 。 示例 1: 输入:head = [1,2,2,1] 输出:true 示例 2: 输入:head = [1,2] 输出:false 提示: 链表中节点数目在范围[1
【华为机试ACM基础#02】从单向链表中删除指定值的节点、输出单向链表中倒数第k个节点(熟悉链表的输入方式)
摘要:#### 从单向链表中删除指定值的节点 输入一个单向链表和一个节点的值,从单向链表中删除等于该值的节点,删除后如果链表中无节点则返回空指针。 链表的值不能重复。 构造过程,例如输入一行数据为: 6 2 **1 2** **3 2** **5 1** **4 5** **7 2** 2 则第一个参数6
【华为机试ACM基础#01】字符串最后一个单词长度、计算某字符出现次数、提取不重复的整数(熟悉字符/字符串/整数的输入)
摘要:#### 字符串最后一个单词的长度 **描述** 计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾) **输入描述**: 输入一行,代表要计算的字符串,非空,长度小于5000。 **输出描述**: 输出一个整数,表示输入字符串最后一个单词的长度。