算法
文章平均质量分 51
该栏主要是展示博主日常关于练习的算法相关思路以及简介,仅供参考。
ufgnix0802
这个作者很懒,什么都没留下…
展开
-
C++ Pow(x,n)
实现 pow(x, n) ,即计算x的整数n次幂函数(即,x)。不可使用Pow相关API。原创 2022-09-30 13:04:58 · 682 阅读 · 0 评论 -
C++ 字母异位词分组
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。原创 2022-09-30 13:01:52 · 256 阅读 · 0 评论 -
C++ 旋转图像
给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。原创 2022-09-30 13:00:14 · 1074 阅读 · 0 评论 -
C++ 跳跃游戏II
给你一个非负整数数组 nums ,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。假设你总是可以到达数组的最后一个位置。原创 2022-09-22 20:53:45 · 1009 阅读 · 0 评论 -
C++ 通配符匹配
给定一个字符串 (s) 和一个字符模式 § ,实现一个支持 ‘?’ 和 ‘*’ 的通配符匹配。两个字符串完全匹配才算匹配成功。原创 2022-09-22 19:16:38 · 614 阅读 · 0 评论 -
C++ 字符串相乘
给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。原创 2022-09-22 19:15:25 · 1338 阅读 · 0 评论 -
C++ 接雨水
给定n个非负整数表示每个宽度为1的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。原创 2022-09-22 19:13:06 · 284 阅读 · 0 评论 -
C++ 缺失的第一个整数
给你一个未排序的整数数组nums,请你找出其中没有出现的最小的正整数。请你实现时间复杂度为O(n)并且只使用常数级别额外空间的解决方案。原创 2022-09-22 19:08:52 · 300 阅读 · 0 评论 -
C++ 组合总和 - II
给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的每个数字在每个组合中只能使用。原创 2022-09-22 19:06:55 · 436 阅读 · 0 评论 -
C++ 组合总和
给你一个的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有,并以列表形式返回。你可以按返回这些组合。candidates 中的 同一个 数字可以。如果至少一个数字的被选数量不同,则两种组合是不同的。对于给定的输入,保证和为 target 的不同组合数少于 150 个。原创 2022-09-22 19:04:49 · 868 阅读 · 0 评论 -
C++ 外观数列
给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。要一个数字字符串,首先要将字符串分割为数量的组,每个组都由连续的最多组成。然后对于每个组,先描述字符的数量,然后描述字符,形成一个描述组。要将描述转换为数字字符串,先将每组中的字符数量用数字替换,再将所有描述组连接起来。原创 2022-09-14 21:35:48 · 135 阅读 · 0 评论 -
C++ 有效的独数
请你判断一个 9 x 9 的数独是否有效。只需要,验证已经填入的数字是否有效即可。原创 2022-09-14 21:33:38 · 720 阅读 · 1 评论 -
C++ 最长有效括号
给你一个只包含'('和')'的字符串,找出最长有效(格式正确且连续)括号子串的长度。原创 2022-09-14 21:31:28 · 505 阅读 · 0 评论 -
C++ 下一个排列
整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地,如果数组的所有排列根据其字典顺序从小到大排列在一个容器中,那么数组的 下一个排列 就是在这个有序容器中排在它后面的那个排列。如果不存在下一个更大的排列,那么这个数组必须重排为字典序最小的排列(即,其元素按升序排列)。给你一个整数数组 nums ,找出 nums 的下一个排列。必须修改,只允许使用额外常数空间。原创 2022-09-11 21:00:10 · 221 阅读 · 0 评论 -
C++ 串联所有单词的子串
给定一个字符串 s 和一个字符串数组 words。words 中所有字符串 长度相同。s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。返回所有串联字串在 s 中的开始索引。你可以以 任意顺序 返回答案。原创 2022-09-11 20:57:41 · 577 阅读 · 1 评论 -
C++ 两数相除
给定两个整数,被除数 dividend 和除数 divisor。将两数相除,要求不使用乘法、除法和 mod 运算符。返回被除数 dividend 除以除数 divisor 得到的商。整数除法的结果应当截去(truncate)其小数部分,例如:truncate(8.345) = 8 以及 truncate(-2.7335) = -2。原创 2022-09-09 21:12:16 · 2085 阅读 · 0 评论 -
C++ 实现strStr()
实现 strStr() 函数。给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1。当 needle 是空字符串时,我们应当返回什么值呢?这是一个在面试中很好的问题。对于本题而言,当 needle 是空字符串时我们应当返回 0。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。原创 2022-09-08 23:10:26 · 1268 阅读 · 0 评论 -
C++ K个一组反转链表
给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。原创 2022-09-07 22:05:48 · 419 阅读 · 0 评论 -
C++ 两两交换链表中的节点
给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即只能进行节点交换)。原创 2022-09-06 21:23:57 · 463 阅读 · 0 评论 -
C++ 合并K个升序链表
给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。原创 2022-09-05 21:40:01 · 389 阅读 · 0 评论 -
C++ 括号生成
数字n代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且括号组合。原创 2022-09-05 21:38:35 · 1099 阅读 · 0 评论 -
C++ 合并两个有序链表
将两个升序链表合并为一个新的链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。原创 2022-09-03 17:46:02 · 899 阅读 · 0 评论 -
C++ 有效的括号
给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。原创 2022-09-03 17:43:44 · 547 阅读 · 0 评论 -
C++ 删除链表的倒数第N个结点
给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点。原创 2022-09-03 17:41:47 · 218 阅读 · 0 评论 -
C++四数之和
给你一个由 n 个整数组成的数组 nums ,和一个目标值 target。你可以按任意顺序返回答案。原创 2022-09-03 17:38:39 · 400 阅读 · 0 评论 -
C++ 电话号码的字母组合
给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。原创 2022-08-07 23:18:53 · 476 阅读 · 0 评论 -
C++ 三数之和
给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0?请你找出所有和为 0 且不重复的三元组。原创 2022-08-06 23:02:32 · 1077 阅读 · 0 评论 -
C++ 最长公共前缀
编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。原创 2022-08-05 21:53:48 · 589 阅读 · 0 评论 -
C++ 罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II。27 写做 XXVII, 即为 XX + V + II。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为 IX。...原创 2022-08-04 22:37:50 · 626 阅读 · 0 评论 -
整数转罗马数字(C++)
罗马数字包含以下七种字符I,V,X,L,C,D和M。例如,罗马数字2写做II,即为两个并列的1。12写做,即为。27写做XXVII,即为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如4不写做IIII,而是IV。数字1在数字5的左边,所表示的数等于大数5减小数1得到的数值4。同样地,数字9表示为IX。给你一个整数,将其转为罗马数字。...原创 2022-07-17 21:46:15 · 776 阅读 · 0 评论 -
回文数(C++)
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。进阶:你能不将整数转为字符串来解决这个问题吗?...原创 2022-07-11 22:20:03 · 5984 阅读 · 0 评论 -
字符串转换整数(atoi)(C++)
请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。原创 2022-07-10 20:58:23 · 248 阅读 · 0 评论 -
整数反转(C++)
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。...原创 2022-07-09 22:16:39 · 2377 阅读 · 0 评论 -
Z字形变换(C++)
将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “PAYPALISHIRING” 行数为 3 时,排列如下:之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“PAHNAPLSIIGYIR”。...原创 2022-07-08 22:30:31 · 849 阅读 · 0 评论 -
最长回文子串(C++)
给你一个字符串s,找到s中最长的回文子串。原创 2022-07-06 22:01:15 · 2455 阅读 · 0 评论 -
寻找两个正序数组的中位数(C++)
给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 算法的时间复杂度应该为 O(log (m+n)) 。原创 2022-07-05 21:50:38 · 260 阅读 · 0 评论 -
无重复字符的最长子串(C++)
给定一个字符串 ,请你找出其中不含有重复字符的 最长子串 的长度。提示:0原创 2022-07-04 22:19:40 · 501 阅读 · 0 评论 -
两数相加(C++)
给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...原创 2022-07-03 20:47:06 · 1206 阅读 · 0 评论