![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
码不停题
文章平均质量分 70
Mr.liang呀
分享知识 探讨技术
展开
-
2022 05 字节题
文章目录leetcode 424 替换后的最长重复字符leetcode 424 替换后的最长重复字符给你一个字符串 s 和一个整数 k 。你可以选择字符串中的任一字符,并将其更改为任何其他大写英文字符。该操作最多可执行 k 次。在执行上述操作后,返回包含相同字母的最长子字符串的长度。输入:s = "AABABBA", k = 1输出:4解释:将中间的一个’A’替换为’B’,字符串变为 “AABBBBA”。子串 “BBBB” 有最长重复字母, 答案为 4。滑动窗口+双指针解法//双指针原创 2022-05-03 19:41:06 · 409 阅读 · 0 评论 -
2022 春 字节题(六)
文章目录leetcode 210 课程表 IIleetcode 210 课程表 II现在你总共有 numCourses 门课需要选,记为 0 到 numCourses - 1。给你一个数组 prerequisites ,其中 prerequisites[i] = [ai, bi] ,表示在选修课程 ai 前 必须 先选修 bi 。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示:[0,1] 。返回你为了学完所有课程所安排的学习顺序。可能会有多个正确的顺序,你只要返回 任意原创 2022-04-10 22:28:16 · 283 阅读 · 0 评论 -
春 字节题(五)
文章目录leetcode 55 跳跃游戏 && leetcode 45 跳跃游戏IIleetcode 55 跳跃游戏 && leetcode 45 跳跃游戏II55给定一个非负整数数组nums,你最初位于数组的第一个下标,数组中的每个元素代表你在该位置可以跳跃的最大长度;判断是否能够到达最后一个下标;例如:输入:nums = [2,3,1,1,4]输出:true解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。原创 2022-03-26 12:27:44 · 2822 阅读 · 0 评论 -
排序算法 &&LRU缓存算法
leetcode 912 排序数组给定一个整数数组nums,请你将该数组升序排列;方法一:优化后的快排解法//快排用三数取中进行优化class Solution{public: //三数取中进行优化 void GetMid(vector<int>& nums, int left, int right) { int mid = left + (right - left) / 2; //中间元素下标 if (nums[left原创 2022-03-25 10:59:41 · 690 阅读 · 0 评论 -
春 字节题(四)
文章目录leetcode 198 打家劫舍leetcode 414 第三大的数leetcode 198 打家劫舍leetcode 414 第三大的数原创 2022-03-17 11:28:58 · 552 阅读 · 0 评论 -
2022春刷题---字节题(三)
回文链表题目要求:给定一个链表的头节点head,请你返回是否为回文链表;例如:输入:head=[1,2,3,3,2,1]输出:trueC++实现://回文链表class Solution{public: bool isPalindrome(ListNode* head) { stack<int>s; ListNode* p = head; while (p) { s.push(p->val); p = p->next;//将所有的原创 2022-03-11 10:45:11 · 1783 阅读 · 0 评论 -
笔记本题目 复习(一)
反转链表原创 2022-03-07 13:48:25 · 731 阅读 · 0 评论 -
字节题 春(二)
文章目录剑指offer 连续子数组的最大和leetcode 2 无重复字符的最长子串leetcode 11 盛最多水的容器leetcode 160 相交链表leetcode 1884 鸡蛋掉落剑指offer 连续子数组的最大和leetcode 2 无重复字符的最长子串leetcode 11 盛最多水的容器leetcode 160 相交链表leetcode 1884 鸡蛋掉落...原创 2022-03-03 17:05:47 · 462 阅读 · 0 评论 -
2022 春 刷题(一)
文章目录leetcode 209 长度最小的子数组leetcode 209 长度最小的子数组算法要求:给定一个含有 n 个正整数的数组和一个正整数 target 。找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl+1, …, numsr-1, numsr] ,并返回其长度。如果不存在符合条件的子数组,返回 0 。例如:输入 target=7 nums=[2.3.1.2.4.3]输出:2 [4,3]是符合要求的最短数组用滑动窗口解法:算法实现:原创 2022-02-23 10:10:09 · 940 阅读 · 0 评论 -
leetcode 8 将字符串转换成整数atoi(有限状态机解法)中等
针对本题引入自动机:字符串处理的题目往往涉及复杂的流程以及条件情况,如果直接上手写程序,一不小心就会写出极其臃肿的代码。因此,为了有条理地分析每个输入字符的处理方法,我们可以使用自动机这个概念:我们的程序在每个时刻有一个状态 s,每次从序列中输入一个字符 c,并根据字符 c 转移到下一个状态 s’。这样,我们只需要建立一个覆盖所有情况的从 s 与 c 映射到 s’ 的表格即可解决题目中的问题代码实现:#include<iostream>using namespace std;#原创 2022-01-12 12:35:52 · 2545 阅读 · 0 评论 -
链表相关(一)
大师傅敢死队风格原创 2022-01-07 11:38:51 · 317 阅读 · 0 评论 -
动态规划相关
文章目录理论基础什么是动态规划动态规划的解题步骤动态规划如何debug以斐波那契数列 (leetcode509)为例说明理论基础什么是动态规划动态规划,英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的例如:有N件物品和一个最多能背重量为W 的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品原创 2022-01-06 12:47:06 · 509 阅读 · 0 评论 -
排列组合问题
提出需求:从 n 个人里面,选出 k 个人,有多少中选法。解题思路:这个问题用递归求解,要从 n 个里面选 k 个,首先要判断,n 和 k 的关系,如果n小于k;则没有选法,如果等于,则只有一种选法;如果大于,我们可以分成,选中当前的这个和不选中当前这个来进行递归,每一次选择总量都减一;选中当前这个的话,要从剩下的 n-1 个中选择 k-1个;不选中的话,要从剩下的 n-1 中选择 k 个,如果要选择的数量变成0的话,标识着找到一种选法,返回1。代码实现:#include<iostrea原创 2022-01-05 22:59:45 · 394 阅读 · 0 评论 -
二叉树相关(一)
提出需求:用哈希实现:#include<iostream>using namespace std;#include<vector>#include<unordered_map>#include<string>#include<algorithm>class Solution{public: vector<vector<string>>groupAnagrams(vector<string&原创 2022-01-05 22:37:39 · 773 阅读 · 0 评论 -
准备的题目(一)
Leetcode 24 两两交换链表中的节点题目背景:示例:输入:1->2->3->4输出:2->1->4->3实现代码:struct ListNode{ int val; ListNode* next; ListNode(int x) :val(x), next(NULL) {};};class Solution{public: ListNode* swapPairs(ListNode* head) { ListNode* dum原创 2021-12-23 12:00:46 · 366 阅读 · 0 评论 -
系统设计循环队列
**系统设计循环队列**一 题目来源:循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出),有一定容量原则并且队尾被连接在队首之后以形成一个循环支持任意类型数据获取 第一大 第二大 avg 等操作二 代码实现#include <iostream>using namespace std;//单链表 template <class T>struct Node{ T data; //why 这里为什么不用基本类型指针呢 T* ?使原创 2021-12-17 23:09:44 · 452 阅读 · 0 评论 -
leetcode 22 括号生成
题目背景:中等给定数字n,n代表生成的括号的对数,设计函数实现生成所有可能的并且有效的额括号组合输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]输入:n=1输出:["()"]在这里插入代码片算法思想:DFS:深度搜索代码实现://深度搜索 DFS + 剪枝 //剪枝条件:左括号的数目小于右括号的数目 以及左括号和右括号的数目均大于nclass Solution{public: vector<strin原创 2021-12-16 14:48:38 · 139 阅读 · 0 评论 -
Leetcode 20 有效的括号&&Leetcode 21合并两个有序链表(俩easy题)
Leetcode 20 有效的括号题目要求:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例:输入:s="(){}[]" ;输出:true输入:s="({[]})"输出:true直接上代码!//利用栈先进后出的特性 实现相匹配符号的增消 从而实现是不是有效//当遍历到一个字符时,将与其匹配的字符放入栈中,当在对应的位置发现字符不一样的时候,原创 2021-12-15 12:33:37 · 74 阅读 · 0 评论 -
Leetcode11 盛最多水的容器
题目背景:难度;中等要求:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水---------------------------------------------------------------------------------------------------------------------原创 2021-12-14 12:30:41 · 784 阅读 · 0 评论 -
Leetcode 19 删除链表倒数第N个节点
题目背景:难度:中等要求:删除给定链表的倒数第N个节点,返回链表的头节点。例如:给定 head=[1,2,3,4,5] n=2输出 [1,2,3,5]-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------原创 2021-12-14 12:13:41 · 734 阅读 · 0 评论 -
C++11新特性
文章目录1 新增关键字及新用法1.1 auto关键字及用法1.2 nullptr关键字及用法1.3 for循环语法2 新增STL容器2.1 array2.2 forward_list2.3 unordered_map2.4 unordered_set3 多线程4智能指针内存管理5其他1 新增关键字及新用法====================================================================================================原创 2021-12-13 21:20:41 · 407 阅读 · 0 评论 -
Leetcode1 两数之和 & Leetcode 633平方数之和
题目背景:========================================================================================================算法思路:题目要求找到目标的两个数字,返回其数组下标;引入哈希,key代表我们要找的数字;value对应其在数组中的下标;第一个数字:key=nums[i] value=table[nums[i]]第二个数字:key=target-nums[i] val原创 2021-12-13 11:31:09 · 403 阅读 · 0 评论 -
Leetcode 18 四数之和
题目背景:========================================================================================================算法思想://题目要求是不含重复元素的四元组//算法思想:// 先用两层嵌套for循环找到第一个和第二个不重复的数字,再用双指针(左右指针)的思想找到第三个和第四个数字;//四个数字依次是nums[k],nums[i],nums[left],nums[right];//第一个和第原创 2021-12-13 11:09:29 · 169 阅读 · 0 评论 -
Leetcode 911 在线选举
题目背景:以下解法超出时间限制,重点是学习思路。用leetcode官方解法:预处理+二分查找的方式//预处理 + 二分查找的方式class TopVoteCandidate{public: vector<int>data;//该数组用于保存票数最多的候选人 vector<int>index;//时间数组 TopVoteCandidate(vector<int>& persons, vector<int>& times) {原创 2021-12-12 18:41:51 · 3993 阅读 · 0 评论 -
Leetcode 17 电话号码的字母组合
题目背景:解法:回溯算法class Solution{private: //封装1-10个按键上的字母 const string letterMap[10] { "","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz" };public: vector<string>res;//用于存储最终的字母组合 string s;//用于暂存字母 //回溯算法 void backtracking(const strin原创 2021-12-12 18:24:45 · 209 阅读 · 0 评论