
随便刷的算法题
lwycc233
坚持总会有回报!
展开
-
leetcode-203. 删除链表中的节点
题目删除链表中等于给定值 val 的所有节点。示例:输入: 1->2->6->3->4->5->6, val = 6输出: 1->2->3->4->5思路判断head是否为空判断head.val是否等于val构造两个节点,一个等于当前节点,一个等于当前节点的上一个节点,便于删除节点python代码# Defini...原创 2018-09-24 17:08:04 · 125 阅读 · 0 评论 -
367. 有效的完全平方数
题目给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。说明:不要使用任何内置的库函数,如 sqrt。示例 1:输入:16输出:True示例 2:输入:14输出:False思路方法一:使用二分法方法二:一个数如果能够开平方,那它一定有若干个奇数组成,例如:9=1+3+5代码class Solution { ...原创 2018-11-06 21:35:19 · 142 阅读 · 0 评论 -
374. 猜数字大小
题目我们正在玩一个猜数字游戏。 游戏规则如下:我从 1 到 n 选择一个数字。 你需要猜我选择了哪个数字。每次你猜错了,我会告诉你这个数字是大了还是小了。你调用一个预先定义好的接口 guess(int num),它会返回 3 个可能的结果(-1,1 或 0):-1 : 我的数字比较小1 : 我的数字比较大0 : 恭喜!你猜对了!示例 :输入: n = 10, pick = 6输...原创 2018-11-07 10:54:31 · 154 阅读 · 0 评论 -
371. 两整数之和
题目不使用运算符 + 和 - ,计算两整数 a 、b 之和。示例 1:输入: a = 1, b = 2输出: 3示例 2:输入: a = -2, b = 3输出: 1思路如果a=0,那么直接返回b如果a<0,那么b就减a次如果a>0,那么b就加a次代码class Solution { public int ...原创 2018-11-07 10:56:32 · 94 阅读 · 0 评论 -
383. 赎金信
题目给定一个赎金信 (ransom) 字符串和一个杂志(magazine)字符串,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。如果可以构成,返回 true ;否则返回 false。(题目说明:为了不暴露赎金信字迹,要从杂志上搜索各个需要的字母,组成单词来表达意思。)注意:你可以假设两个字符串均只含有小写字母。canConstruct(“a”, “b”...原创 2018-11-07 15:19:13 · 1101 阅读 · 0 评论 -
387. 字符串中的第一个唯一字符
题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。案例:s = “leetcode”返回 0.s = “loveleetcode”,返回 2.注意事项:您可以假定该字符串只包含小写字母。思路从左到右统计字符出现的个数,如果发现某一个字符只出现一次就返回该字符的索引值。将字符串转换成字符数组用mark数组记录字符出现的次数代码cl...原创 2018-11-08 13:01:02 · 119 阅读 · 0 评论 -
389. 找不同
题目给定两个字符串 s 和 t,它们只包含小写字母。字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。请找出在 t 中被添加的字母。示例:输入:s = “abcd”t = “abcde”输出:e解释:‘e’ 是那个被添加的字母。思路跟这一题特别像:383.赎金信一个字符串里面是否包含了另外的一个字符串。代码class Solution { pu...原创 2018-11-08 14:57:28 · 141 阅读 · 0 评论 -
404. 左叶子之和
题目计算给定二叉树的所有左叶子之和。示例: 3 / \ 9 20 / \ 15 7在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24思路递归实现。代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * ...原创 2018-11-14 15:04:35 · 149 阅读 · 0 评论 -
409. 最长回文串
题目给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如 “Aa” 不能当做一个回文字符串。注意:假设字符串的长度不会超过 1010。示例 1:输入:“abccccdd”输出:7解释:我们可以构造的最长的回文串是"dccaccd", 它的长度是 7。思路只要是成对出现即可,所以统计字符串中一对一对的数即可。代...原创 2018-11-14 15:35:34 · 153 阅读 · 0 评论 -
leetcode-94. 二叉树的中序遍历
题目给定一个二叉树,返回它的中序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3输出: [1,3,2]递归实现二叉树的前、中、后序遍历/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNod...原创 2019-03-11 20:47:30 · 96 阅读 · 0 评论 -
leetcode-149. 直线上最多的点数
题目给定一个二维平面,平面上有 n 个点,求最多有多少个点在同一条直线上。示例 1:输入: [[1,1],[2,2],[3,3]]输出: 3解释:^|| o| o| o +-------------&amp;amp;gt;0 1 2 3 4示例 2:输入: [[1,1],[3,2],[5,3],[4,1],[2,3],[1,4]]输出: 4解...原创 2019-03-12 19:31:07 · 263 阅读 · 0 评论 -
辗转相除法求最大公约数
void gcd(int a,int b){ return a%b==0?a:gcd(b,a%b);}原创 2019-03-12 19:32:53 · 113 阅读 · 0 评论 -
4*. 寻找两个有序数组的中位数
题目原创 2019-04-10 15:49:26 · 110 阅读 · 0 评论 -
3. 无重复字符的最长子串
题目给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: "abcabcbb"输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。示例 2:输入: "bbbbb"输出: 1解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。示例 3:输入: "pwwkew"输出: 3解释: 因为无重复字符的最长子串是 "...原创 2019-04-10 15:35:49 · 178 阅读 · 0 评论 -
2. 两数相加
题目给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 -> 4 -> 3) + (5 -> 6 -> 4)输出:7 -> 0 -&g...原创 2019-04-03 19:41:48 · 93 阅读 · 0 评论 -
349. 两个数组的交集
题目给定两个数组,编写一个函数来计算它们的交集。示例 1:输入: nums1 = [1,2,2,1], nums2 = [2,2]输出: [2]示例 2:输入: nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出: [9,4]说明:输出结果中的每个元素一定是唯一的。我们可以不考虑输出结果的顺序。我的思路遍历nums1数组,查看nums1中的元素是否...原创 2018-10-30 17:31:19 · 98 阅读 · 0 评论 -
344. 反转字符串
题目编写一个函数,其作用是将输入的字符串反转过来。示例 1:输入: “hello”输出: “olleh”示例 2:输入: “A man, a plan, a canal: Panama”输出: “amanaP :lanac a ,nalp a ,nam A”思路前后两个位置的字符交换,这样就可以减少循环的次数!注意的是,字符串中替换某个字符是不好操作的,先把字符串转化成字符数组...原创 2018-10-29 15:34:04 · 106 阅读 · 0 评论 -
leetcode-204. 计数质数
题目统计所有小于非负整数 n 的质数的数量。示例:输入: 10输出: 4解释: 小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。思路每一个数的倍数一定不是质数。代码class Solution { public int countPrimes(int n) { int[] num = new int[n]; int c...原创 2018-09-25 11:12:09 · 169 阅读 · 0 评论 -
leetcode-31. 下一个排列
题目实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1代码class Solution(object):...原创 2018-09-25 15:32:12 · 99 阅读 · 0 评论 -
leetcode-205. 同构字符串
题目给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s = “foo”, t = “bar”输出: fals...原创 2018-09-25 16:10:46 · 131 阅读 · 0 评论 -
leetcode-258. 各位相加
给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。示例:输入: 38输出: 2解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。进阶:你可以不使用循环或者递归,且在 O(1) 时间复杂度内解决这个问题吗?代码/*class Solution { public int addDigits(int nu...原创 2018-10-11 15:59:49 · 121 阅读 · 0 评论 -
263. 丑数
编写一个程序判断给定的数是否为丑数。丑数就是只包含质因数 2, 3, 5 的正整数。示例 1:输入: 6输出: true解释: 6 = 2 × 3示例 2:输入: 8输出: true解释: 8 = 2 × 2 × 2示例 3:输入: 14输出: false解释: 14 不是丑数,因为它包含了另外一个质因数 7。说明:1 是丑数。输入不会超过 32 位有符号整数的范围...原创 2018-10-11 16:12:17 · 101 阅读 · 0 评论 -
leecode-206. 反转链表
题目反转一个单链表。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL代码/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode ne...原创 2018-09-27 09:34:29 · 163 阅读 · 0 评论 -
leetcode-226. 翻转二叉树
题目翻转一棵二叉树。示例:输入: 4/ 2 7/ \ / 1 3 6 9输出: 4/ 7 2/ \ / 9 6 3 1代码/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeN...原创 2018-09-27 10:06:37 · 142 阅读 · 0 评论 -
278. 第一个错误的版本
题目你是产品经理,目前正在带领一个团队开发新的产品。不幸的是,你的产品的最新版本没有通过质量检测。由于每个版本都是基于之前的版本开发的,所以错误的版本之后的所有版本都是错的。假设你有 n 个版本 [1, 2, …, n],你想找出导致之后所有版本出错的第一个错误的版本。你可以通过调用 bool isBadVersion(version) 接口来判断版本号 version 是否在单元测试中出错...原创 2018-10-12 15:06:50 · 99 阅读 · 0 评论 -
303. 区域和检索 - 数组不可变
题目给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -> 1sumRange(2, 5) -> -1sumRange(0, 5) -> -3说明:你可以假设数组不可...原创 2018-10-18 16:48:18 · 299 阅读 · 0 评论 -
326. 3的幂
题目给定一个整数,写一个函数来判断它是否是 3 的幂次方。示例 1:输入: 27输出: true示例 2:输入: 0输出: false示例 3:输入: 9输出: true示例 4:输入: 45输出: false代码1.使用循环class Solution { public boolean isPowerOfThree(int n) { whi...原创 2018-10-18 17:04:05 · 93 阅读 · 0 评论 -
242. 有效的字母异位词
题目给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的一个字母异位词。示例 1:输入: s = “anagram”, t = “nagaram”输出: true示例 2:输入: s = “rat”, t = “car”输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况...原创 2018-10-10 11:10:23 · 128 阅读 · 0 评论 -
257. 二叉树的所有路径
题目给定一个二叉树,返回所有从根节点到叶子节点的路径。说明: 叶子节点是指没有子节点的节点。示例:输入:1/ 2 35输出: [“1->2->5”, “1->3”]解释: 所有根节点到叶子节点的路径为: 1->2->5, 1->3思路分治法代码/** * Definition for a binary tree nod...原创 2018-10-10 18:02:15 · 112 阅读 · 0 评论 -
290. 单词模式
题目给定一种 pattern(模式) 和一个字符串 str ,判断 str 是否遵循相同的模式。这里的遵循指完全匹配,例如, pattern 里的每个字母和字符串 str 中的每个非空单词之间存在着双向连接的对应模式。示例1:输入: pattern = “abba”, str = “dog cat cat dog”输出: true示例 2:输入:pattern = “abba”, s...原创 2018-10-17 14:50:39 · 172 阅读 · 0 评论 -
292. Nim游戏
题目你和你的朋友,两个人一起玩 Nim游戏:桌子上有一堆石头,每次你们轮流拿掉 1 - 3 块石头。 拿掉最后一块石头的人就是获胜者。你作为先手。你们是聪明人,每一步都是最优解。 编写一个函数,来判断你是否可以在给定石头数量的情况下赢得游戏。示例:输入: 4输出: false解释: 如果堆中有 4 块石头,那么你永远不会赢得比赛;因为无论你拿走 1 块、2 块 还是 3 块石头,最后...原创 2018-10-17 15:21:12 · 121 阅读 · 0 评论 -
1. 两数之和
题目给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]代码class...原创 2019-04-03 19:28:17 · 78 阅读 · 0 评论