avatar
文章
22
标签
34
分类
6
主页
分类
标签
龙晓
主页
分类
标签

龙晓

23.合并K个排序链表
发表于2025-05-08
23. 合并 K 个升序链表 - 力扣(LeetCode) 给你一个链表数组,每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中,返回合并后的链表。 考虑合并两个升序链表,可使用一个变量作为衔接,依次合并两个链表,合并K次 合并两个有序链表 ListNode* mergeTwoLists(ListNode *a, ListNode *b) { if ((!a) || (!b)) return a ? a : b; ListNode head, *tail = &head, *aPtr = a, *bPtr = b; while (aPtr && bPtr) { if (aPtr->val < bPtr->val) { tail->next = aPtr; aPtr = aPtr->next; } else { tail->next = bPtr; bPtr =...
25.K个一组翻转链表
发表于2025-05-08|力扣
25. K 个一组翻转链表 - 力扣(LeetCode) 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(x), next(next) {} * }; */class Solution {public: ...
编译与调试
发表于2025-05-08|linux基础
编译与调式gcc编译器当我们进行编译的时候,要使用一系列的工具,我们称之为工具链。SDK就是编译工具链的简写,我们所使用的是gcc系列编译工具链 对于.c格式的C文件,可以采用gcc或g++编译 对于 .cc、.cpp格式的C++文件,应该采用g++进行编译 编译过程使用gcc编译程序的过程是预处理–>编译–>汇编–>链接。期间所使用的工具依次是预处理器,编译器,汇编器as,链接器ld 预处理: C...
215.数组中的第K个最大元素
发表于2025-05-08|力扣
215. 数组中的第K个最大元素 - 力扣(LeetCode) 给定整数数组 nums 和整数 k,请返回数组中第 **k** 个最大的元素。 请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。 你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。 class Solution {public: // int findKthLargest(vector<int>& nums, int k) { // priority_queue<int> pq(nums.begin(),nums.end());//优先队列或者排序,时间复杂度高 // int n=k-1; // while(n--){ // pq.pop(); // } // return pq.top(); // } void adjust(vector<int>&arr,int...
146.LRU缓存
发表于2025-04-17|力扣
146. LRU 缓存 - 力扣(LeetCode) LRU是Least Recently Used的缩写,即最近最少使用,是一种常用的页面置换算法,选择最近最久未使用的页面予以淘汰。该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最少使用的页面予以淘汰。 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。 void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity ,则应该 逐出 最久未使用的关键字。 函数 get 和 put 必须以 O(1)...
516.最长回文子序列
发表于2025-04-17|力扣
最长回文子序列516. 最长回文子序列 - 力扣(LeetCode) 给你一个字符串 s ,找出其中最长的回文子序列,并返回该序列的长度。 子序列定义为:不改变剩余字符顺序的情况下,删除某些字符或者不删除任何字符形成的一个序列。 示例 1: 输入:s = "bbbab"输出:4解释:一个可能的最长回文子序列为 "bbbb" 。 示例 2: 输入:s = "cbbd"输出:2解释:一个可能的最长回文子序列为 "bb" 。 提示: 1 <= s.length <= 1000 s 仅由小写英文字母组成 问题描述:找到字符串中的最长回文子序列。 状态转移方程: 如果s[i] == s[j],则dp[i][j] = dp[i+1][j-1] + 2 否则,dp[i][j] = max(dp[i+1][j], dp[i][j-1]) 初始条件:dp[i][i] = 1 class Solution {public: int...
72.编辑距离
发表于2025-04-17|力扣
编辑距离72. 编辑距离 - 力扣(LeetCode) 给你两个单词 word1 和 word2, 请返回将 word1 转换成 word2 所使用的最少操作数 。 你可以对一个单词进行如下三种操作: 插入一个字符 删除一个字符 替换一个字符 示例 1: 输入:word1 = "horse", word2 = "ros"输出:3解释:horse -> rorse (将 'h' 替换为 'r')rorse -> rose (删除 'r')rose -> ros (删除 'e') 示例 2: 输入:word1 = "intention", word2 = "execution"输出:5解释:intention -> inention (删除 't')inention -> enention (将 'i' 替换为...
1143.最长公共子序列(LCS)
发表于2025-04-17|力扣
最长公共子序列(LCS)给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。 例如,"ace" 是 "abcde" 的子序列,但 "aec" 不是 "abcde" 的子序列。 两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。 示例 1: 输入:text1 = "abcde", text2 = "ace" 输出:3 解释:最长公共子序列是 "ace" ,它的长度为 3 。 示例 2: 输入:text1 = "abc", text2 = "abc"输出:3解释:最长公共子序列是 "abc" ,它的长度为 3 。 示例 3: 输入:text1 =...
674.最长连续递增序列
发表于2025-04-17|力扣
最长连续递增序列 给定一个未经排序的整数数组,找到最长且 连续递增的子序列,并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r(l < r)确定,如果对于每个 l <= i < r,都有 nums[i] < nums[i + 1] ,那么子序列 [nums[l], nums[l + 1], ..., nums[r - 1], nums[r]] 就是连续递增子序列。 示例 1: 输入:nums = [1,3,5,4,7]输出:3解释:最长连续递增序列是 [1,3,5], 长度为3。尽管 [1,3,5,7] 也是升序的子序列, 但它不是连续的,因为 5 和 7 在原数组里被 4 隔开。 示例 2: 输入:nums = [2,2,2,2,2]输出:1解释:最长连续递增序列是 [2], 长度为1。 提示: 1 <= nums.length <= 104 -109 <= nums[i] <= 109 class Solution {public: int...
300.最长递增子序列
发表于2025-04-17|力扣
300. 最长递增子序列 - 力扣(LeetCode) 给你一个整数数组 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 提示: 1 <= nums.length <= 2500 -104 <= nums[i] <= 104 问题描述:找到序列中最长的递增子序列。 状态转移方程:dp[i] = max(dp[i], dp[j] + 1) for all j < i and nums[j] < nums[i] 初始条件:dp[i] = 1 for all i class...
123
avatar
Jin Long
悟已往之不谏
文章
22
标签
34
分类
6
Follow Me
公告
不定时更新
最新文章
23.合并K个排序链表2025-05-08
25.K个一组翻转链表2025-05-08
编译与调试2025-05-08
215.数组中的第K个最大元素2025-05-08
146.LRU缓存2025-04-17
分类
  • c++基础1
  • linux基础1
  • 力扣14
  • 基础知识3
  • 数据库1
  • 背包问题1
标签
有依赖背包 推排序 补码 字符串 多重背包 高精度计算 模拟 01背包 字符串操作 大小端 高可用 dp 动态规划 完全背包 查找 软链接与硬链接 滑动窗口 事务 背包的具体方案数 混合背包 锁 哈希 页面置换算法 LRU 链表 STL 编译与调式 redis 哈希表 c语言基础 判断大小端 分组背包 makefile 二维费用背包
归档
  • 五月 2025 4
  • 四月 2025 8
  • 七月 2024 1
  • 六月 2024 1
  • 四月 2024 1
  • 三月 2024 4
  • 九月 2022 2
  • 三月 2022 1
网站信息
文章数目 :
22
本站总字数 :
29.5k
本站访客数 :
本站总浏览量 :
最后更新时间 :
©2019 - 2025 By Jin Long
框架 Hexo 7.3.0|主题 Butterfly 5.3.5