
刷题
小珈猫
这个作者很懒,什么都没留下…
展开
-
【LeetCode刷题】(75) 颜色分类
给定一个包含红色、白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。此题中,我们使用整数 0、 1 和 2 分别表示红色、白色和蓝色。注意:不能使用代码库中的排序函数来解决这道题。示例:输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2]进阶:一个直观的解决方案是使用计数排序的两趟扫描算法。首先,迭代计算出0、1 和 2 元素的个数,然后按照0、1、2的排序,重写当前数组。你能想出一个仅使用常数空间的一趟扫描算原创 2020-10-19 19:30:29 · 185 阅读 · 0 评论 -
【LeetCode刷题】(1002)查找常用字符
给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。你可以按任意顺序返回答案。示例 1:输入:[“bella”,“label”,“roller”]输出:[“e”,“l”,“l”]示例 2:输入:[“cool”,“lock”,“cook”]输出:[“c”,“o”]提示:1 <= A.length <= 1001 <= A原创 2020-10-19 17:45:05 · 126 阅读 · 0 评论 -
【LeetCode刷题】(66)加一 (数组)
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 4321。根据题意加一,没错就是加一这很重要,因为它是只加一的所以有可能的情况就只有两种:除 99 之外的数字加一;数字 99。加原创 2020-10-19 16:57:06 · 158 阅读 · 0 评论 -
【LeetCode刷题】(260)只出现一次的数字III
给定一个整数数组 nums,其中恰好有两个元素只出现一次,其余所有元素均出现两次。 找出只出现一次的那两个元素。示例 :输入: [1,2,1,3,2,5]输出: [3,5]注意:结果输出的顺序并不重要,对于上面的例子, [5, 3] 也是正确答案。你的算法应该具有线性时间复杂度。你能否仅使用常数空间复杂度来实现?方法一:哈希表建立一个值到频率的映射关系的哈希表,返回频率为 1 的数字。算法:from collections import Counterclass Solution:原创 2020-10-13 16:01:36 · 389 阅读 · 0 评论 -
【LeetCode刷题】(137)只出现一次的数字II
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99法一:利用数学公式:HashSet将输入数组存储到 HashSet,然后使用 HashSet 中数字和的三倍与数组之和比较。3 * (a + b + c) - (a + a + a + b + b + b原创 2020-10-13 14:49:50 · 196 阅读 · 0 评论 -
【LeetCode刷题】(136)只出现一次的数字(两种简易方法)
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4答案是使用位运算。对于这道题,可使用异或运算 ⊕。异或运算有以下三个性质。任何数和 0 做异或运算,结果仍然是原来的数,即 a⊕0=a。任何数和其自身做异或运算,结果是 0,即a⊕a=0。异或运算满足交换律和结合律,即 a⊕原创 2020-10-13 14:10:21 · 183 阅读 · 0 评论 -
【python版本数据结构与算法】基本概念(10-1)
参考书:《数据结构与算法(Python语言描述)》最原始的方法:枚举法那么数据结构和算法是什么?答曰:兵法!我们可以不看兵法在战场上肉搏,如此,可能会胜利,可能会失败。即使胜利,可能也会付出巨大的代价。我们写程序亦然:没有看过数据结构和算法,有时面对问题可能会没有任何思路,不知如何下手去解决;大部分时间可能解决了问题,可是对程序运行的效率和开销没有意识,性能低下;有时会借助别人开发的利器暂时解决了问题,可是遇到性能瓶颈的时候,又不知该如何进行针对性的优化。如果我们常看兵法,便可做到胸有成竹,有时会原创 2020-10-10 15:30:58 · 405 阅读 · 0 评论