随笔分类 -  算法与数据结构

摘要:# 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 # # # # 示例 1: # # # 输入:l1 = [1,2,4], l2 = [1,3,4]# 输出:[1,1,2,3,4,4]# 方法一:递归,将较小值得节点参与到下一次比较中 # leet 阅读全文
posted @ 2021-06-29 20:22 今夜无风 阅读(234) 评论(0) 推荐(0) 编辑
摘要:# 给定一个只包括 '(',')','{','}','[',']' 的字符串 s ,判断字符串是否有效。 # # 有效字符串需满足: # # # 左括号必须用相同类型的右括号闭合。 # 左括号必须以正确的顺序闭合。 # # # # # 示例 1: # # # 输入:s = "()"# 输出:true 阅读全文
posted @ 2021-06-29 13:54 今夜无风 阅读(168) 评论(0) 推荐(0) 编辑
摘要:# 给你一个链表,删除链表的倒数第 n 个结点,并且返回链表的头结点。 # # 进阶:你能尝试使用一趟扫描实现吗? # # # # 示例 1: # # # 输入:head = [1,2,3,4,5], n = 2# 输出:[1,2,3,5] 方法:双指针 # leetcode submit regi 阅读全文
posted @ 2021-06-29 08:24 今夜无风 阅读(39) 评论(0) 推荐(0) 编辑
摘要:实现一个正则表达式匹配,力扣-10 # 给你一个字符串 s 和一个字符规律 p,请你来实现一个支持 '.' 和 '*' 的正则表达式匹配。 # # # '.' 匹配任意单个字符 # '*' 匹配零个或多个前面的那一个元素 # # # 所谓匹配,是要涵盖 整个 字符串 s的,而不是部分字符串。 # # 阅读全文
posted @ 2021-06-28 15:04 今夜无风 阅读(48) 评论(0) 推荐(0) 编辑
摘要:# 给你一个字符串 s,找到 s 中最长的回文子串。 # # # # 示例 1: # # # 输入:s = "babad"# 输出:"bab"# 解释:"aba" 同样是符合题意的答案。 方法一:动态规划 # leetcode submit region begin(Prohibit modific 阅读全文
posted @ 2021-06-25 07:53 今夜无风 阅读(32) 评论(0) 推荐(0) 编辑
摘要:# 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数 。 # # # # 示例 1: # # # 输入:nums1 = [1,3], nums2 = [2]# 输出:2.00000# 解释:合并数组 = [1,2,3] ,中位 阅读全文
posted @ 2021-06-24 20:23 今夜无风 阅读(217) 评论(0) 推荐(0) 编辑
摘要:# 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。 # # # # 示例 1: # # # 输入: s = "abcabcbb"# 输出: 3 # 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 方法: def lengthOfLongestSubString( 阅读全文
posted @ 2021-06-23 11:47 今夜无风 阅读(43) 评论(0) 推荐(0) 编辑
摘要:# 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。 # # 请你将两个数相加,并以相同形式返回一个表示和的链表。 # # 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。 # # # # 示例 1: # # # 输入 阅读全文
posted @ 2021-06-23 10:46 今夜无风 阅读(54) 评论(0) 推荐(0) 编辑
摘要:问题: 例如,ip地址为10.0.3.193,把每段拆分成一个二进制形式组合起来为00001010 00000000 00000011 11000001,然后把这个二进制数转变成十进制整数就是167773121。 原文描述: 给你一个IP4的地址,请转成十进制整数 (2021-03 腾讯-PCG-前 阅读全文
posted @ 2021-06-02 23:54 今夜无风 阅读(617) 评论(0) 推荐(0) 编辑
摘要:问题: # 给你两个单词 word1 和 word2,请你计算出将 word1 转换成 word2 所使用的最少操作数 。 # # 你可以对一个单词进行如下三种操作: # # # 插入一个字符 # 删除一个字符 # 替换一个字符 # # # # # 示例 1: # # # 输入:word1 = "h 阅读全文
posted @ 2021-06-02 19:17 今夜无风 阅读(56) 评论(0) 推荐(0) 编辑
摘要:问题: # 给你一个由 '1'(陆地)和 '0'(水)组成的的二维网格,请你计算网格中岛屿的数量。 # # 岛屿总是被水包围,并且每座岛屿只能由水平方向和/或竖直方向上相邻的陆地连接形成。 # # 此外,你可以假设该网格的四条边均被水包围。 # # # # 示例 1: # # # 输入:grid = 阅读全文
posted @ 2021-05-26 23:35 今夜无风 阅读(43) 评论(0) 推荐(0) 编辑
摘要:并查集:也被称为不相交集数据结构。顾名思义,并查集主要操作是合并与查询,它是把初始不相交的集合经过多次合并操作后合并为一个大集合,然后可以通过查询判断两个元素是否已经在同一个集合中了。 class UnionFind(object): """并查集类""" def __init__(self, n) 阅读全文
posted @ 2021-05-26 21:08 今夜无风 阅读(110) 评论(0) 推荐(0) 编辑
摘要:问题: 假设有几种硬币,如1、3、5,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。 方法:dp, dp[i]: 面值为i的硬币所需要的硬币最少个数,dp[i]= 1+min(dp[i-coins[0]], dp[i-coins[1]],...) def change_coins(c 阅读全文
posted @ 2021-05-25 22:16 今夜无风 阅读(213) 评论(0) 推荐(0) 编辑
摘要:问题: 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法? 方法:一维dp def go_stage(n): if not n: return if n==1 or n==2: return n if n==0: return 1 dp = [0] * ( 阅读全文
posted @ 2021-05-25 20:10 今夜无风 阅读(109) 评论(0) 推荐(0) 编辑
摘要:问题: # 给定一个三角形 triangle ,找出自顶向下的最小路径和。 # # 每一步只能移动到下一行中相邻的结点上。相邻的结点 在这里指的是 下标 与 上一层结点下标 相同或者等于 上一层结点下标 + 1 的两个结点。也就是说,如果# 正位于当前行的下标 i ,那么下一步可以移动到下一行的下标 阅读全文
posted @ 2021-05-23 19:20 今夜无风 阅读(78) 评论(0) 推荐(0) 编辑
摘要:问题: # 给定一个包含非负整数的 m x n 网格 grid ,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。 # # 说明:每次只能向下或者向右移动一步。 # # # # 示例 1: # # # 输入:grid = [[1,3,1],[1,5,1],[4,2,1]]# 输出:7# 阅读全文
posted @ 2021-05-23 18:21 今夜无风 阅读(59) 评论(0) 推荐(0) 编辑
摘要:问题: # 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。 # # 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 # # 问总共有多少条不同的路径? # # # # 示例 1: # # # 输入:m 阅读全文
posted @ 2021-05-23 13:22 今夜无风 阅读(49) 评论(0) 推荐(0) 编辑
摘要:问题: # 整数数组 nums 按升序排列,数组中的值 互不相同 。 # # 在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转,使数组变为 [nums[k], nums[# k+1], ..., nums[n-1], nums[0], n 阅读全文
posted @ 2021-05-22 22:28 今夜无风 阅读(55) 评论(0) 推荐(0) 编辑
摘要:问题: # 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 # # 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 # # # # # # 示例 1: # # # 输入:digits = "23"# 输出:["ad","ae", 阅读全文
posted @ 2021-05-20 23:12 今夜无风 阅读(160) 评论(0) 推荐(0) 编辑
摘要:问题: # 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上# 被小偷闯入,系统会自动报警。 # # 给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够 阅读全文
posted @ 2021-05-19 23:46 今夜无风 阅读(118) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示