
算法
dididada10
这个作者很懒,什么都没留下…
展开
-
Leetcode 121. 买卖股票的最佳时机
买卖股票的最佳时机给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖.原创 2021-03-11 22:52:01 · 113 阅读 · 0 评论 -
Leetcode860. 柠檬水找零
在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。每位顾客只买一杯柠檬水,然后向你付 5 美元、10 美元或 20 美元。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付 5 美元。注意,一开始你手头没有任何零钱。如果你能给每位顾客正确找零,返回 true ,否则返回 false 。示例 1:输入:[5,5,5,10,20]输出:true解释:前 3 位顾客那里,我们按顺序收取 3 张 5 美元的钞票。第 4 位原创 2021-03-11 22:51:36 · 264 阅读 · 0 评论 -
Leetcode122. 买卖股票的最佳时机 II
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。**注意:**你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。 随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天原创 2021-03-11 22:51:10 · 105 阅读 · 0 评论 -
Leetcode125. 验证回文串
验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。**说明:**本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: falseclass Solution(object): def isPalindrome(self, s): """ :type s: str .原创 2021-02-28 19:57:48 · 97 阅读 · 1 评论 -
Leetcode200. 岛屿数量
200. 岛屿数量200. 岛屿数量给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。岛屿总是被水包围,并且每座岛屿只能由水平方向或竖直方向上相邻的陆地连接形成。此外,你可以假设该网格的四条边均被水包围。示例 1:输入:[['1','1','1','1','0'],['1','1','0','1','0'],['1','1','0','0','0'],['0','0','0','0','0']]输出: 1示例 2:输入:[['1'原创 2020-07-12 23:10:51 · 476 阅读 · 0 评论 -
Leetcode520. 检测大写字母
"""520. 检测大写字母给定一个单词,你需要判断单词的大写使用是否正确。我们定义,在以下情况时,单词的大写用法是正确的:全部字母都是大写,比如"USA"。单词中所有字母都不是大写,比如"leetcode"。如果单词不只含有一个字母,只有首字母大写, 比如 "Google"。否则,我们定义这个单词没有正确使用大写字母。示例 1:输入: "USA"输出: True示例 2:输入: "FlaG"输出: False注意: 输入是由大写和小写拉丁字母组成的非空单词。"""#.原创 2020-05-25 07:22:15 · 393 阅读 · 0 评论 -
Leetcode面试题17. 打印从1到最大的n位数
"""面试题17. 打印从1到最大的n位数输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。示例 1:输入: n = 1输出: [1,2,3,4,5,6,7,8,9]说明:用返回一个整数列表来代替打印n 为正整数分析:方法一:用range()时间复杂度:O(N)空间复杂度:O(N)"""class Solution: def printNumbers(self, n): "..原创 2020-05-24 21:21:27 · 194 阅读 · 0 评论 -
Leetcode面试题58 - I. 翻转单词顺序
面试题58 - I. 翻转单词顺序难度简单输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。为简单起见,标点符号和普通字母一样处理。例如输入字符串"I am a student. ",则输出"student. a am I"。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,...原创 2020-05-24 00:01:28 · 205 阅读 · 0 评论 -
Leetcode面试题58 - II. 左旋转字符串
面试题58 - II. 左旋转字符串难度简单字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串"abcdefg"和数字2,该函数将返回左旋转两位得到的结果"cdefgab"。示例 1:输入: s = "abcdefg", k = 2输出:"cdefgab"示例 2:输入: s = "lrloseumgh", k = 6输出:"umghlrlose"限制:1 <= k < s.l..原创 2020-05-23 23:50:04 · 180 阅读 · 0 评论 -
Leetcode26. 删除排序数组中的重复项
# 20200520print("begin")"""26. 删除排序数组中的重复项难度简单给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用O(1)额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定 nums = [.原创 2020-05-21 06:50:23 · 378 阅读 · 0 评论 -
Leetcode35索引插入位置
# 20200520"""给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0""""""审题:排序数组,无重复元素算法一:特例处理:如果数组为空,返回0.原创 2020-05-20 06:50:53 · 137 阅读 · 0 评论 -
Leetcode27最长公共前缀
# encoding=utf-8"""编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。示例 1:输入: ["flower","flow","flight"]输出: "fl"示例 2:输入: ["dog","racecar","car"]输出: ""解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。""""""算法:处理特例:列表为空首先按照字符串长度升序排列遍历第一个字符串的每个字符,如果后面的每个字符.原创 2020-05-20 06:21:34 · 132 阅读 · 0 评论 -
Leetcod面试题32 - III. 从上到下打印二叉树
from collections import deque"""面试题32 - III. 从上到下打印二叉树难度中等请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回其层次遍历结果:[ [3], [20,9], [15,7].原创 2020-05-15 08:57:45 · 292 阅读 · 0 评论 -
Leetcode面试题32 - I. 从上到下打印二叉树
from collections import deque"""面试题32 - I. 从上到下打印二叉树难度中等12从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。例如:给定二叉树: [3,9,20,null,null,15,7], 3 / \ 9 20 / \ 15 7返回:[3,9,20,15,7]提示:节点总数 <= 1000""""""算法流程:特例处理:当树的根节点为空,则直接返回空列表 [] ;.原创 2020-05-15 08:52:18 · 294 阅读 · 0 评论 -
leetcode1. 两数之和
给定一个整数数组 nums和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。示例:给定 nums = [2, 7, 11, 15], target = 9 因为 nums[0] + nums[1] = 2 + 7 = 9 所以返回 [0, 1]方法一:...原创 2020-03-02 20:19:01 · 117 阅读 · 0 评论