leetCode
lcvcl
对算法感兴趣
展开
-
26.从排序数组中删除重复项
题目:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。思路1:数组有序,a、所以对重复数值的个数进行记录,这里使用k记录根据k值将当前值向前移动,这是去除前面重复数值之后当前值应该存在的位置b、记录数组不重复数字的个数,将后面...原创 2018-07-17 15:22:05 · 277 阅读 · 0 评论 -
12. 整数转罗马数字
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个...原创 2019-04-01 10:51:29 · 97 阅读 · 0 评论 -
273. 整数转换英文表示
题目:将非负整数转换为其对应的英文表示。可以保证给定输入小于231- 1 。示例 1:输入: 123输出: "One Hundred Twenty Three"示例 2:输入: 12345输出: "Twelve Thousand Three Hundred Forty Five"示例 3:输入: 1234567输出: "One Million Two ...原创 2019-04-02 09:43:17 · 467 阅读 · 0 评论 -
138. 复制带随机指针的链表
题目:给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深拷贝。示例:输入:{"$id":"1","next":{"$id":"2","next":null,"random":{"$ref":"2"},"val":2},"random":{"$ref":"2"},"val":1}解释:节点 1 的值是 ...原创 2019-04-02 11:18:23 · 124 阅读 · 0 评论 -
6. Z 字形变换
题目:将一个给定字符串根据给定的行数,以从上往下、从左到右进行Z 字形排列。比如输入字符串为"LEETCODEISHIRING"行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"LCIRETOESIIGEDHN"。请你实现这个将字符串进行指定...原创 2019-04-02 14:41:28 · 95 阅读 · 0 评论 -
15. 三数之和
题目:给定一个包含n个整数的数组nums,判断nums中是否存在三个元素a,b,c ,使得a + b + c =0 ?找出所有满足条件且不重复的三元组。注意:答案中不可以包含重复的三元组。例如, 给定数组 nums = [-1, 0, 1, 2, -1, -4],满足要求的三元组集合为:[ [-1, 0, 1], [-1, -1, 2]]思路:...原创 2019-04-02 16:25:15 · 228 阅读 · 0 评论 -
69. x 的平方根
题目:实现int sqrt(int x)函数。计算并返回x的平方根,其中x是非负整数。由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。示例 1:输入: 4输出: 2示例 2:输入: 8输出: 2说明: 8 的平方根是 2.82842..., 由于返回类型是整数,小数部分将被舍去。思路:1.遍历1~x2.二分查找...原创 2019-04-02 17:13:01 · 175 阅读 · 0 评论 -
53. 最大子序和
题目:给定一个整数数组nums,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4],输出: 6解释:连续子数组[4,-1,2,1] 的和最大,为6。思路:因为要考虑连续,所以需注意两点,与当前比较的必定包含当前节点的上一个节点,前n个节点的最大字串不一定包含n,但是与n+1进行计算...原创 2019-04-03 14:37:15 · 98 阅读 · 0 评论 -
557. 反转字符串中的单词 III
题目:给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入: "Let's take LeetCode contest"输出: "s'teL ekat edoCteeL tsetnoc"思路:切分反转合并 def reverseWords(self, s: str) -> str: l = ...原创 2019-04-03 14:49:43 · 101 阅读 · 0 评论 -
36.有效的数独
题目:判断一个9x9 的数独是否有效。只需要根据以下规则,验证已经填入的数字是否有效即可。数字1-9在每一行只能出现一次。 数字1-9在每一列只能出现一次。 数字1-9在每一个以粗实线分隔的3x3宫内只能出现一次。上图是一个部分填充的有效的数独。数独部分空格内已填入了数字,空白格用'.'表示。思路:因为只能填写1~9九个数字,所以每行和每列...原创 2019-03-18 21:08:29 · 110 阅读 · 0 评论 -
507.完美数
题目:对于一个正整数,如果它和除了它自身以外的所有正因子之和相等,我们称它为“完美数”。给定一个正整数n,如果他是完美数,返回True,否则返回False思路:1.遍历,从2开始一直到输入数的开平方,可以整除的数都相加。之所以一直到开平方是因为开平方的数后面的数字必然都是重复的,存在前面可以匹配相乘的数字1.class Solution: def ch...原创 2019-03-18 20:44:56 · 170 阅读 · 0 评论 -
870. 优势洗牌
题目:给定两个大小相等的数组A和B,A 相对于 B 的优势可以用满足A[i] > B[i]的索引i的数目来描述。返回A的任意排列,使其相对于B的优势最大化。思路:对A进行排序,而后对B进行遍历,大于B的进行记录。该思路发现问题,输入:[2,0,4,1,2] [1,3,0,0,2]输出:[1,4,0,2,2]预期:[2,0,2,1,4]该输...原创 2019-03-21 11:02:19 · 119 阅读 · 0 评论 -
204. 计数质数
题目:统计所有小于非负整数n的质数的数量。思路:对于给定的n,判断其中每一个从2~根号X的数,如果没有能够整除的数则是质数,为什么到根号X,因为根号X是自身的相乘,小于根号X的数必定与大于根号X的数相对应。发散思路,发现计算能否被已经找到的质数整除即可。1.对其2~根号x进行判断,超时class Solution: def isPrime(self,n)...原创 2019-03-21 12:48:55 · 200 阅读 · 0 评论 -
9. 回文数
题目:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。不将其转换为字符串思路:1.对数字逆序计算,之后判断是否和原数字相等2.获取数字的一半,并逆序判断是否相等1. def isPalindrome(self, x: int) -> bool: if x < 0 or (x % 10 == 0 ...原创 2019-03-21 14:20:36 · 115 阅读 · 0 评论 -
866. 回文素数
题目:求出大于或等于N的最小回文素数。回顾一下,如果一个数大于 1,且其因数只有 1 和它自身,那么这个数是素数。例如,2,3,5,7,11 以及13 是素数。回顾一下,如果一个数从左往右读与从右往左读是一样的,那么这个数是回文数。例如,12321 是回文数思路:1.对于大于N的数进行是否是质数和回文数的判断,超时,网上查阅发现偶数位的回文数除了11都不是质数...原创 2019-03-21 17:37:29 · 481 阅读 · 0 评论 -
794. 有效的井字游戏
题目:用字符串数组作为井字游戏的游戏板board。当且仅当在井字游戏过程中,玩家有可能将字符放置成游戏板所显示的状态时,才返回 true。该游戏板是一个 3 x 3 数组,由字符" ","X"和"O"组成。字符" "代表一个空位。以下是井字游戏的规则:玩家轮流将字符放入空位(" ")中。 第一个玩家总是放字符 “X”,且第二个玩家总是放字符 “O”。 “X” 和 ...原创 2019-03-21 18:35:54 · 508 阅读 · 0 评论 -
02.两数相加
题目:给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,并且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0开头。思路:1.分别对两个字符串进行遍历,使用一个变量进行进位的保留。当两个字符串中有一个为空时,跳出循环,对进位进行加减...原创 2019-03-18 15:25:15 · 115 阅读 · 0 评论 -
13. 罗马数字转整数
题目:罗马数字包含以下七种字符:I,V,X,L,C,D和M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做II,即为两个...原创 2019-03-21 19:21:01 · 158 阅读 · 0 评论 -
01.两数之和
题目:给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。思路:1.遍历数组,判断target-nums[i]是否在数组剩下的部分,如果是返回位置2.使用hashmap存储位置,key为target-nums[i],遍历数组同时遍...原创 2019-03-18 16:09:27 · 80 阅读 · 0 评论 -
160. 相交链表
题目:编写一个程序,找到两个单链表相交的起始节点。思路:获得两个链表长度长的那个进行缩短而后两个同时取下一个,相等的节点即为相交节点2.思路与上一个相同,但不借助额外计数器,两个链表同时遍历,当一个结束时,结束的链表指向未结束链表头部,再次遍历。当长链表遍历结束后,长短链表长度相同。指向末尾的指针遍历另一个。相等时结束3.将其中一个链表的首尾相连,将问题变为是否有环,且...原创 2019-04-03 16:06:03 · 89 阅读 · 0 评论