leetcode
文章平均质量分 58
嫌疑人Y的执事
在赌城砌砖中...
展开
-
Leetcode 腾讯50题 day17
Leetcode 腾讯50题 day17No.344 反转字符串题目描述编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。你可以假设数组中的所有字符都是 ASCII 码表中的可打印字符。输入:["h","e","l","l","o"]输出:["o","l","l","e","h"]代码class Solution: def reverse原创 2021-01-29 20:49:38 · 130 阅读 · 0 评论 -
Leetcode 腾讯50题 day16
Leetcode 腾讯50题 day16No.237 删除链表中的节点题目描述请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为 要被删除的节点 。输入:head = [4,5,1,9], node = 5输出:[4,1,9]解释:给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9.代码# Definition for singly-linked list.# class ListNode:#原创 2021-01-29 00:28:52 · 101 阅读 · 0 评论 -
Leetcode 腾讯50题 day15
Leetcode 腾讯50题 day15No.231 2的幂题目描述给定一个整数,编写一个函数来判断它是否是 2 的幂次方。输入: 1输出: true解释: 20 = 1代码class Solution: def isPowerOfTwo(self, n: int) -> bool: return n&(n-1)==0 if n>0 else FalseNo.235 二叉搜索树的最近公共祖先题目描述给定一个二叉搜索树, 找到该树中两原创 2021-01-27 22:53:59 · 185 阅读 · 0 评论 -
Leetcode 腾讯50题 day14
Leetcode 腾讯50题 day14No.215 数组中的第K个最大元素题目描述在未排序的数组中找到第 k 个最大的元素。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。输入: [3,2,1,5,6,4] 和 k = 2输出: 5代码class Solution: def findKthLargest(self, nums: List[int], k: int) -> int: class maxheap(object)原创 2021-01-26 14:20:29 · 107 阅读 · 0 评论 -
Leetcode 腾讯50题 day13
Leetcode 腾讯50题 day13No.160 相交链表题目描述编写一个程序,找到两个单链表相交的起始节点。代码# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: def getIntersectionNode(self, headA原创 2021-01-26 01:01:21 · 133 阅读 · 0 评论 -
Leetcode 腾讯50题 day12
Leetcode 腾讯50题 day12No.155 最小栈题目描述设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],原创 2021-01-24 01:52:44 · 170 阅读 · 0 评论 -
Leetcode 腾讯50题 day11
Leetcode 腾讯50题 day11No.136 只出现一次的数字题目描述给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?输入: [4,1,2,1,2]输出: 4我的思路这道题使用哈希表来做很容易想,不过需要用O(n)的空间复杂度。题目要求不用额外空间,所以要看看题中有没有什么特别的信息。可以发现除了所求元素外,其他所有元素出现且仅出现两次,那么就能想到用位原创 2021-01-22 22:04:30 · 126 阅读 · 0 评论 -
Leetcode 腾讯50题 day10
Leetcode 腾讯50题 day10No.121 买卖股票的最佳时机题目描述给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。注意利润不能是 7-1 = 6, 因为卖出原创 2021-01-22 01:58:58 · 117 阅读 · 0 评论 -
Leetcode 腾讯50题 day9
Leetcode 腾讯50题 day9今天太忙了,目前只做了一道题,剩余的题目这周末补一下No.88 合并两个有序数组题目描述给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自 nums2 的元素。输入:nums1 = [1,2,3,0,0,0], m = 3, num原创 2021-01-20 23:48:09 · 94 阅读 · 0 评论 -
Leetcode 腾讯50题 day8
Leetcode 腾讯50题 day8今天的题解我分享了一些使用Python做算法题的小技巧,涉及到组合数求解math.comb()递归调用的记忆化存储装饰器@lru_cache求解字符串排列组合的包itertools如果有使用Python做算法题的同学可以看看我的题解中的分享。另外,练习算法的目的还是在锻炼思维与编码能力,这些函数只是巧劲,有时候并不能有效降低时间复杂度,不过这些函数笔试的时候一般都可以使用(math.comb函数未必),掌握了会在写代码的过程中更加手到擒来。No.62 不原创 2021-01-19 20:20:00 · 340 阅读 · 1 评论 -
Leetcode 腾讯50题 day7
Leetcode 腾讯50题 day7No.54 螺旋矩阵题目描述给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。输入:[ [1, 2, 3, 4], [5, 6, 7, 8], [9,10,11,12]]输出: [1,2,3,4,8,12,11,10,9,5,6,7]我的思路这是一道模拟题,就是按照题目给出的思路实现就可解出的题。我这里的主要思路是定义好前进的方向与是否访问过该元素的矩阵,因为整个矩阵的遍历是顺时针原创 2021-01-18 17:03:48 · 223 阅读 · 2 评论 -
Leetcode 腾讯50题 day6
Leetcode 腾讯50题 day6No.46 全排列题目描述给定一个 没有重复 数字的序列,返回其所有可能的全排列。输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]代码class Solution: def permute(self, nums: List[int]) -> List[List[int]]: if len(nums) ==原创 2021-01-17 22:23:45 · 126 阅读 · 0 评论 -
Leetcode 腾讯50题 day5
Leetcode 腾讯50题 day5No.23 合并K个升序链表题目描述给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。输入:lists = [[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[ 1->4->5, 1->3->4, 2->6]将它们合并到一个有序链表中得到。1->1->2->3->4->4原创 2021-01-16 20:47:31 · 136 阅读 · 0 评论 -
Leetcode 腾讯50题 day4
Leetcode 腾讯50题 day4No.20 有效的括号题目描述给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: "([)]"输出: false代码class Solution: def isValid(self, s: str) -> bool: left = ['(', '[',原创 2021-01-15 23:27:39 · 108 阅读 · 0 评论 -
Leetcode 腾讯50题 day3
Leetcode 腾讯50题 day3今天因为在做上一期pandas的综合测试题,第三题三数之和还没有写出更好的实现思路,暂时贴了官方题解的答案,主要和大家分享一些利用时间复杂度进行解题的技巧,在No.11盛最多水的容器的题解中分享No.11 盛最多水的容器题目描述给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容原创 2021-01-14 00:27:36 · 204 阅读 · 0 评论 -
Leetcode 腾讯50题 day2
Leetcode 腾讯50题 day2今天的题目整体都比昨天简单一些,主要涉及到字符串处理及整数的位数操作,也没有什么可以分享的,就简单贴一下思路和代码吧,以下解法都是用Python解的。No.7 整数反转题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。输入:x = 123输出:321提示:-231 <= x <= 231 - 1解题思路我将整数作为字符串处理,反转完成后再生成整数代码class Solution: def r原创 2021-01-12 20:29:36 · 131 阅读 · 0 评论 -
Leetcode 腾讯50题 day1
Leetcode 腾讯50题 day1No.5 最长回文子串题目描述:给你一个字符串 s,找到 s 中最长的回文子串。输入:s = "babad"输出:"bab"解释:"aba" 同样是符合题意的答案。提示:1 <= s.length <= 1000s 仅由数字和英文字母(大写和/或小写)组成解题思路:综述:这道题是一道可以用动态规划解决的题,对于刚开始接触算法的同学,首先要解决怎么想到这题可以用动态规划解决,在想到要用动态规划解决的时候,重心则要放在该怎么定义状态和原创 2021-01-11 22:57:16 · 389 阅读 · 1 评论