LeetCode
LeetCode刷题,记录西天取经路。路漫漫其修远兮,吾将上下而求索。
悫GaGa
这个作者很懒,什么都没留下…
展开
-
Leetcode(73):矩阵置0
给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。输入: [ [1,1,1], [1,0,1], [1,1,1]]输出: [ [1,0,1], [0,0,0], [1,0,1]]一个直接的解决方案是使用O(mn) 的额外空间,但这并不是一个好的解决方案。一个简单的改进方案是使用 O(m + n) 的额...原创 2020-03-22 21:30:22 · 158 阅读 · 0 评论 -
LeetCode(58): 最后一个单词的长度
Given a string s consists of upper/lower-case alphabets and empty space characters ’ ', return the length of last word in the string.If the last word does not exist, return 0.Note: A word is defined...转载 2019-12-03 23:57:15 · 96 阅读 · 0 评论 -
LeeTCode (67):二进制求和
Given two binary strings, return their sum (also a binary string).For example,a = “11”b = “1”Return “100”.用了两个指针分别指向a和b的末尾,然后每次取出一个字符,转为数字,若无法取出字符则按0处理,然后定义进位carry,初始化为0,将三者加起来,对2取余即为当前位的数字,对2取商即...转载 2019-12-03 23:52:49 · 129 阅读 · 0 评论 -
LeetCode(38):报数
报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1112112111112213122111 被读作 “one 1” (“一个一”) , 即 11。11 被读作 “two 1s” (“两个一”), 即 21。21 被读作 “one 2”, “one 1” (“一个二” , “一个一”) , 即 1211。给定一个正整数 n(1 ≤ n...转载 2019-12-01 17:50:36 · 131 阅读 · 0 评论 -
LeetCode(24):两两交换链表中的节点
Given a linked list, swap every two adjacent nodes and return its head.You may not modify the values in the list’s nodes, only nodes itself may be changed.Example:Given 1->2->3->4, you sho...转载 2019-12-01 15:51:48 · 120 阅读 · 0 评论 -
LeetCode(122): 买卖股票的最佳时机 II
官方题解很棒!链接:https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/solution/mai-mai-gu-piao-de-zui-jia-shi-ji-ii-by-leetcode/1)暴力法:每个数与其后面的所有数进行判断,找到每个峰谷后,再运用递归在子序列中找峰谷。理论正确,但OJ超时;2)峰谷法:...原创 2019-11-30 00:32:04 · 108 阅读 · 0 评论 -
LeetCode(28):实现strStr() 函数
实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = “hello”, needle = “ll”输出: 2示例 2:输入: haystack = “aaaaa”, needle = “bba...转载 2019-11-30 00:16:29 · 132 阅读 · 0 评论 -
LeetCode(15):三数之和题解 && Bug:AddressSanitizer: heap-buffer-overflow
暴力法搜索为 O(N^3)) 时间复杂度,可通过双指针动态消去无效解来优化效率。双指针法铺垫: 先将给定 nums 排序,复杂度为 O(NlogN)。双指针法思路: 固定 33个指针中最左(最小)数字的指针 k,双指针 i,j 分设在数组索引 (k, len(nums)) 两端,通过双指针交替向中间移动,记录对于每个固定指针 k 的所有满足 nums[k] + nums[i] + nums[j...转载 2019-11-17 20:06:04 · 414 阅读 · 0 评论 -
LeetCode(118):杨辉三角
难度等级:Easy。题目描述:给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]解题思路:杨辉三角是二项式系数的一种写法,如果熟悉杨辉三角的五个性质,那么很好生成,可参见http://www.c...转载 2019-11-27 21:50:17 · 126 阅读 · 0 评论 -
LeetCode(119):杨辉三角 二
题目:给定一个非负索引 k,其中 k ≤ 33,返回杨辉三角的第 k 行。要求:O(k) 空间复杂度。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 3输出: [1,3,3,1]刚开始想按照上一题中生成杨辉三角的方式来做,最终输出某一行即可,但这样做的复杂度不是 O(k) 。进一步,只生成当前行和上一行,OJ还是通不过。class Solution {publi...原创 2019-11-27 23:29:43 · 170 阅读 · 0 评论 -
LeetCode(121):买卖股票的最佳时机
题目描述:给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注...转载 2019-11-28 20:09:24 · 110 阅读 · 0 评论