算法
文章平均质量分 50
yimik
这个作者很懒,什么都没留下…
展开
-
LeetCode 每日一题 - 2022/2/14 (540. 有序数组中的单一元素)
描述给你一个仅由整数组成的有序数组,其中每个元素都会出现两次,唯有一个数只会出现一次。请你找出并返回只出现一次的那个数。你设计的解决方案必须满足 O(log n) 时间复杂度和 O(1) 空间复杂度。思路 题目指出重复的数字只会出现两次,且数组有序,故含有单一元素的部分必然含有 2n - 1 个数,在如下分析:说明:当 mid % 2 = 0 时,更新规则为left = mid (或right = mid) 也可(后面为了契合改进的代码,使用 left = mid (right =原创 2022-02-14 12:31:23 · 320 阅读 · 0 评论 -
LeetCode 279.完全平方数
描述给你一个整数 n ,返回和为 n 的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9 和 16 都是完全平方数,而 3 和 11 不是。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/perfect-squares思路将多数之和化为两数之和,如12 = 4 + 4 + 4 = 8 + 4,这样就可以利用动态规划来做,但由于将 8 化为两数之和,所以要利用数组储原创 2022-02-07 21:38:15 · 393 阅读 · 0 评论 -
LeetCode Hot 100 - 48. 旋转图像(beats 100%)
描述给定一个 n × n 的二维矩阵 matrix 表示一个图像。请你将图像顺时针旋转 90 度。你必须在 原地 旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要 使用另一个矩阵来旋转图像。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-image思路拆分矩阵,一圈一圈旋转矩阵:代码class Solution {public: void rotate(vector<vector<int&原创 2022-01-26 12:13:25 · 565 阅读 · 0 评论 -
LeetCode Hot 100 - 20. 有效的括号(beats 100%)
描述给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。有效字符串需满足: 1、左括号必须用相同类型的右括号闭合。 2、左括号必须以正确的顺序闭合。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/valid-parentheses思路利用各对左右括号的ASCII码距离不超过2(ASCII码一览表)代码class Solution {public: bool isVali原创 2022-01-24 18:56:25 · 163 阅读 · 0 评论 -
LeetCode Hot 100 - 正则表达式匹配(beats 100%)
题目描述给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 '.' 匹配任意单个字符 '*' 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个字符串 s 的,而不是部分字符串。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/regular-expression-matching思路先述:matches(string& s, string& p, int s_p原创 2022-01-24 10:22:27 · 272 阅读 · 0 评论 -
剑指Offer - JZ49 丑数
题目描述原创 2022-01-19 17:18:16 · 181 阅读 · 0 评论 -
C++ 快排动态演示 + 伪代码
快排1、简述2、动图演示3、伪代码参考文献1、简述 快速排序(Quicksort)是对冒泡排序算法的一种改进。 快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。(摘自百度百科)2、动图演示(摘自 夏海峰-图解十大经典排序算法)3、伪代码quickSort(arr,原创 2021-05-11 16:55:46 · 1492 阅读 · 0 评论