力扣
真心乖宝宝
这个作者很懒,什么都没留下…
展开
-
二维数组按数字大小选取前top k个数字
题目描述二维数组,每行是降序的,且每行的长度不固定,综合选取去重后的前top-k大的数字。输入:[[10,9,7,5,2][8,6,3][10,9,8,5]]选取前top-5大的数字输出:[10,9,8,7,6]做法思想选取top-k大(小)这种问题,首先想到用最大(小)堆解决,本题中考虑构建k个最大堆进行比较,若某个堆顶元素被选取了,则将指针往后移。具体代码import heapqdef run(nums, k): m = len(nums) list1 = [0原创 2022-05-25 15:45:17 · 555 阅读 · 0 评论 -
【力扣第九题】-- 回文数(python版本)
题目描述判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。示例 1:输入: 121输出: true示例2:输入: -121输出: false解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。示例 3:输入: 10输出: false解释: 从右向左读, 为 01 。因此它不是一个回文数。题目解析本题可以考虑使用两种方法:第一种方法是直接将整数的前半部分与后半部分比较是否一样,若相同,则为回文数;原创 2021-01-27 15:24:42 · 472 阅读 · 3 评论 -
【力扣第八题】-- 字符串转换整数(python版本)
题目描述请你来实现一个myAtoi(string s)函数,使其能将字符串转换成一个32位有符号整数(类似 C/C++ 中的 atoi 函数)示例1:输入: str = “42”输出: 42示例2:输入: str = " -42"输出: -42解释: 第一个非空白字符为 ‘-’, 它是一个负号。我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42.示例3:输入: str = “4193 with words”输出: 4193解释: 转换截止于数字 ‘3’ ,因为原创 2021-01-23 18:15:43 · 217 阅读 · 0 评论 -
【力扣第七题】-- 整数反转(python版本)
题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21思路解析用 res 变量记录反转的整数数字,对当前数字取对 10 的余数,再将余数与 res 变量加和,即可完成 数字 翻转;int 取值范围为 [-2^(31), 2^(31) - 1],如果翻转数字溢出,则立即返回 0。具体代码def reverse(x): # 将原创 2020-12-29 11:57:00 · 283 阅读 · 2 评论 -
【力扣第六题】-- Z字形变换(python版本)
题目描述将一个给定字符串根据给定的行数,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时,排列如下:L C I RE T O E S I I GE D H N之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:“LCIRETOESIIGEDHN”。思路解析字符串 s 是以 Z 字形为顺序存储的字符串,按顺序遍历字符串 s 时,每个字符 c 在 Z 字形中对应的行索引先增大再减小;解决思原创 2020-12-28 16:59:19 · 553 阅读 · 5 评论 -
【力扣第五题】-- 最长回文子串(python版本)
题目描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”解题思路本题考虑使用动态规划求解,有以下两种情况需要考虑:(1) 如果一个字符串是回文串,那么在它左右分别加上一个相同的字符,那么它一定还是一个回文串;(2) 如果在一个不是回文字符串的字符串两端添加任何字符,或者在回文串左右分别加不同的字符,得到的一定原创 2020-12-26 17:13:58 · 331 阅读 · 0 评论 -
【力扣第三题】-- 无重复字符的最长子串(python版本)
题目描述给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “pwwkew”输出: 3解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。注意,你的答案必须是子串的长度,"pwke"是一个子序列,不是子串。题目解析本题考虑使用双指针滑动窗口计算最长子串的长度,利用集合的无重复性来存储滑动窗口的字符具体代码原创 2020-12-22 17:14:27 · 253 阅读 · 1 评论 -
【力扣第二题】--两数相加(python版本)
题目描述给出两个非空的链表用来表示两个非负的整数。其中,它们各自的位数是按照逆序的方式存储的,且它们的每个节点只能存储一位数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以0开头。示例:输入:(7 -> 4 -> 3) + (5 -> 6 -> 4)输出:2 -> 1 -> 8原因:347 + 465 = 812具体代码class ListNode(object): de原创 2020-12-21 21:22:22 · 936 阅读 · 2 评论 -
【力扣第一题】--两数之和(python版本)
题目描述给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9返回 [0, 1]具体代码def twoSum(nums, target): for i, j in enumerate(nums): chazhi = target - j原创 2020-12-17 11:16:08 · 284 阅读 · 0 评论