leecode
loonslo_
励志搬砖中
展开
-
leecode刷题笔记 344. 反转字符串
1原创 2019-04-12 21:35:19 · 203 阅读 · 0 评论 -
leecode刷题笔记 122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。 注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1: 输入: [7,1,5,3,6,4] 输出: 7 解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...原创 2019-05-04 19:39:12 · 190 阅读 · 0 评论 -
leecode刷题笔记 21. 合并两个有序链表
将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例: 输入:1->2->4, 1->3->4 输出:1->1->2->3->4->4 思路: 直接使用递归即可 # Definition for singly-linked list. # class ListNode: # def __...原创 2019-04-28 23:49:31 · 163 阅读 · 0 评论 -
leecode刷题笔记 169. 求众数
给定一个大小为 n 的数组,找到其中的众数。众数是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在众数。 示例 1: 输入: [3,2,3] 输出: 3 示例 2: 输入: [2,2,1,1,1,2,2] 输出: 2 思路 先用字典记录列表中所有数字出现的次数, 然后从字典中,依次迭代找出出现次数大于n/2的 class Solution: ...原创 2019-04-23 15:05:10 · 151 阅读 · 0 评论 -
leecode刷题笔记 206. 反转链表
反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶: 你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 递归思路: 随意取一个中间结点K,要使K+1指向K结点, 需要将K.next.next = K, K.next = Null 依次递归,到第一个结...原创 2019-04-23 00:17:04 · 194 阅读 · 0 评论 -
leecode刷题笔记 9.回文数
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 示例 1: 输入: 121 输出: true 示例 2: 输入: -121 输出: false 解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。 示例 3: 输入: 10 输出: false 解释: 从右向左读, 为 01 。因此它不是一个回文数。 进阶: 你...原创 2019-04-26 14:52:42 · 158 阅读 · 0 评论 -
leecode刷题笔记 136. 只出现一次的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例 2: 输入: [4,1,2,1,2] 输出: 4 思路: 异或可以用于奇偶判断,或者交换两个整数的值而不必用第三个参数 这道题很适用异或 class Soluti...原创 2019-04-13 19:54:15 · 180 阅读 · 0 评论 -
leecode刷题笔记 557. 反转字符串中的单词 III
给定一个字符串,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。 示例 1: 输入: "Let's take LeetCode contest" 输出: "s'teL ekat edoCteeL tsetnoc" 注意:在字符串中,每个单词由单个空格分隔,并且字符串中不会有任何额外的空格。 思路: 直接通过切片[::-1],实现全部字符串的逆序, 然后使用在分割成数组,...原创 2019-04-13 19:13:07 · 157 阅读 · 0 评论 -
leecode刷题笔记 292.Nim游戏
1原创 2019-04-12 21:33:50 · 141 阅读 · 0 评论 -
leecode刷题笔记 78. 子集
给定一组不含重复元素的整数数组 nums,返回该数组所有可能的子集(幂集)。 说明:解集不能包含重复的子集。 示例: 输入: nums = [1,2,3] 输出: [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 思路: 使用回朔法 class Solution: def subsets(self, n...原创 2019-04-11 14:44:19 · 143 阅读 · 0 评论 -
leecode刷题笔记 237. 删除链表中的节点
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点,你将只被给定要求被删除的节点。 现有一个链表 – head = [4,5,1,9],它可以表示为: 示例 1: 输入: head = [4,5,1,9], node = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入...原创 2019-04-11 15:01:09 · 134 阅读 · 0 评论 -
leecode刷题笔记 104. 二叉树的最大深度
给定一个二叉树,找出其最大深度。 二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。 说明: 叶子节点是指没有子节点的节点。 示例: 给定二叉树 [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7 返回它的最大深度 3 。 思路: 直接递归找到深度最大的,直接返回即可 # Definition for a bi...原创 2019-04-11 16:11:48 · 139 阅读 · 0 评论 -
leecode刷题记录 腾讯精选练习50题
从通过率由高到低顺序进行刷题原创 2019-04-10 18:40:55 · 231 阅读 · 0 评论 -
leecode刷题笔记 235. 二叉搜索树的最近公共祖先
给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。” 例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5] 示例 1: 输入: root = [6,2...原创 2019-04-24 20:03:34 · 137 阅读 · 0 评论