leetcode题解系列
huxineric
这个作者很懒,什么都没留下…
展开
-
力扣题解系列:剑指 Offer 65. 不用加减乘除做加法
题目:剑指 Offer 65. 不用加减乘除做加法题目描述:写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。思路都在代码里代码:class Solution: def add(self, a, b) -> int: a &= 0xffffffff b &= 0xffffffff # python 因为位数没有限制,所以负数补码会很长,所以要位与 0xffffffff原创 2020-07-04 18:06:36 · 213 阅读 · 0 评论 -
leetcode位运算学习笔记——只出现一次的数字
只出现一次的数字系列(位运算题解)136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素(使用常数空间)。思路:1、结合律:(a ^ b) ^ c = a ^ (b ^ c)2、对于任何数x,都有x ^ x = 0,x ^ 0 = x初始化一个元素a=0,与所有元素做一次异或,即可得到只出现一次的元素代码:class Solution: def singleNumber(self, nums: List[int]原创 2020-06-24 14:46:54 · 261 阅读 · 0 评论 -
力扣题解系列:42:接雨水
题目:42. 接雨水题目描述:给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 感谢 Marcos 贡献此图。来源:https://leetcode-cn.com/problems/trapping-rain-water/示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6思路原创 2020-06-12 10:59:16 · 1906 阅读 · 0 评论 -
力扣题解系列:739. 每日温度
题目:739. 每日温度题目描述:根据每日 气温 列表,请重新生成一个列表,对应位置的输出是需要再等待多久温度才会升高超过该日的天数。如果之后都不会升高,请在该位置用 0 来代替。示例:输入:[73, 74, 75, 71, 69, 72, 76, 73]输出:[1, 1, 4, 2, 1, 1, 0, 0]提示: 1.气温 列表长度的范围是 [1, 30000]。 2. 每个气温的值的均为华氏度,都是在 [30, 100] 范围内的整数。来源:力扣(LeetCode)链接:ht原创 2020-06-11 14:45:24 · 315 阅读 · 0 评论 -
力扣题解系列:367. 有效的完全平方数
题目:367. 有效的完全平方数题目描述:给定一个正整数 num,编写一个函数,如果 num 是一个完全平方数,则返回 True,否则返回 False。示例:输入:16输出:True输入:14输出:False思路:方法一:“暴力”直接从1开始遍历,直到满足条件为止。(一般人应该不会这么干吧)时间复杂度是O(n),经检验超时,代码就不放了。方法二:“任意一个平方数可以表示成这样的奇数序列和:1+3+5+7+…(2N−1)=N ^2"代码:class Solution: d原创 2020-06-10 22:47:57 · 215 阅读 · 0 评论 -
力扣题解系列:121. 买卖股票的最佳时机
题目:121. 买卖股票的最佳时机题目描述:假设把某股票的价格按照时间先后顺序存储在数组中,请问买卖该股票一次可能获得的最大利润是多少?示例:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格。提示: 1.0 <= 数组长度 <= 10^5来源:力扣(LeetCode)链接:h原创 2020-06-09 13:59:33 · 268 阅读 · 0 评论 -
力扣题解系列:1185. 一周中的第几天
题目:1185. 一周中的第几天题目描述:给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。输入为三个整数:day、month 和 year,分别表示日、月、年。您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}。示例:输入:day = 31, month = 8, year = 2019输出:"Saturday"提示:给出的日期一定是在原创 2020-06-05 22:49:18 · 731 阅读 · 0 评论 -
力扣题解系列:1139. 最大的以 1 为边界的正方形
题目:1139. 最大的以 1 为边界的正方形题目描述:给你一个由若干 0 和 1 组成的二维网格 grid,请你找出边界全部由 1 组成的最大 正方形 子网格,并返回该子网格中的元素数量。如果不存在,则返回 0。示例:输入:`grid = [[1,1,1],[1,0,1],[1,1,1]]`输出:`9`提示:(1)`1 <= grid.length <= 100`(2)`1 <= grid[0].length <= 100`(3)`grid[i][j] 为 0原创 2020-06-05 18:02:53 · 401 阅读 · 0 评论