11 2022 档案

摘要:算法 集合:所有S[1~i]和P[1~j]的匹配方案 属性:是否存在一个合法方案(bool) 如果p[j] != '*',dp[i][j] = dp[i-1][j-1] && (s[i]==p[j] || p[j]=='?') 如果p[j] == '*',dp[i][j] = dp[i][j - 1 阅读全文
posted @ 2022-11-16 13:22 INnoVation-V2 阅读(22) 评论(0) 推荐(0) 编辑
摘要:算法1.三次线性扫描O(n) 观察整个图形,考虑对水的面积按 列 进行拆解 注意到,每个矩形条上方所能接受的水的高度,是由它左边 最高的 矩形,和右边最高的矩形决定的。 具体地,假设第 i 个矩形条的高度为 height[i],且矩形条左边 最高的 矩形条的高度为 left_max[i],右边 阅读全文
posted @ 2022-11-16 12:38 INnoVation-V2 阅读(46) 评论(0) 推荐(0) 编辑
摘要:前置算法: 复原数组 先看一个基础算法, 快速复原一个无序数组, 使得nums[i] == i, 且数组中的元素都是从0开始的有序数 比如数组长度为5,那么数组中的元素就是0 1 2 3 4,且不重复 要恢复这个数组,使得num[i] == i, 就是使用交换,代码如下 void reset(vec 阅读全文
posted @ 2022-11-16 11:40 INnoVation-V2 阅读(13) 评论(0) 推荐(0) 编辑
摘要:给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 思路 首先考虑,在什么情况下出现的重复? 以[1,1,2]为例,分别选了第1个1和第二个1为开头时,会出现重复结果 解决方法是: 如果不选某个元素,那么和这个元素相等的后续元素也应该跳过 即,如果选了第一个1,那么后续的 阅读全文
posted @ 2022-11-15 19:02 INnoVation-V2 阅读(20) 评论(0) 推荐(0) 编辑
摘要:GO语言声明语法 原文地址 介绍 Go新手想知道为什么Go的声明语法与C语言等的传统声明语法不同。在这篇文章中,我们将比较这两种方法,并解释为什么Go的声明是这样的。 C语法 首先,让我们谈谈C语言的语法。C使用了一个不寻常但聪明的声明语法。没有使用特殊的语法来描述类型,而是编写一个涉及被声明字段的 阅读全文
posted @ 2022-11-13 02:16 INnoVation-V2 阅读(90) 评论(0) 推荐(0) 编辑
摘要:思路 为什么会出现重复? 以{1,1,7}和target = 8为例, 如果不选0号位置的1,那么1号位置的1就也不应该选 否则0号位置的1和7构成一个结果 在不选0号位置时,1号位置的1和7又构成一个结果 从而发生重复 所以去重的思路就是如果不选某个元素,那么之后和他相等的元素都应该跳过 代码 c 阅读全文
posted @ 2022-11-10 13:12 INnoVation-V2 阅读(12) 评论(0) 推荐(0) 编辑
摘要:思路 先把数组排序 先枚举i,再枚举j,确定了i和j的值,在保证nums[i]+nums[j]+nums[k1]>=0的条件下,找到k的最小值,之后查看三数相加是否等于0,如果相等,记录答案,如果不等,那就继续枚举i和j 这里的j和k的确定使用的是双指针做法,因为有序,因此每次 阅读全文
posted @ 2022-11-08 14:44 INnoVation-V2 阅读(28) 评论(0) 推荐(0) 编辑
摘要:思路 动态规划 将字符或'.' + '*'当做一个整体进行处理,因此如果下一个位置是*,那就跳过当前位置 当p[j] != '*'时,那就是字符匹配,此时i必须大于0,因为s[i]必须是一个字符才能进行匹配 此时dp[i][j] = dp[i - 1][j - 1] && (s[i] == p[j] 阅读全文
posted @ 2022-11-08 13:52 INnoVation-V2 阅读(48) 评论(0) 推荐(0) 编辑
摘要:思路 - 找规律 找规律题 每一行都是等差数列 样例 输入:s = "PAYPALISHIRING", numRows = 3 输出:"PAHNAPLSIIGYIR" 解释: P A H N A P L S I I G Y I R 第一行和最后一行字符间的距离是2*numRows - 2 中间几行: 阅读全文
posted @ 2022-11-08 13:51 INnoVation-V2 阅读(37) 评论(0) 推荐(0) 编辑
摘要:思路 原问题难以直接递归求解,所以我们先考虑这样一个问题: 在两个有序数组中,长度分别为n、m, 找出第k小数。 如果该问题可以解决,那么第 k = (n+m)/2 小数就是我们要求的中位数. 先从简单情况入手,假设 m,n ≥ k/2,我们先从 nums1 和 nums2 中各取前 k/2 个元素 阅读全文
posted @ 2022-11-08 13:51 INnoVation-V2 阅读(27) 评论(0) 推荐(0) 编辑
摘要:题目地址: https://leetcode.cn/problems/longest-palindromic-substring/ 解法1 - 中心枚举法 思路 有两种回文串 长度为偶数:若中心点坐标为i,左右两坐标起点是i - 1, j + 1 长度为奇数:若中心点坐标为i,左右两坐标起点是i, 阅读全文
posted @ 2022-11-08 11:56 INnoVation-V2 阅读(16) 评论(0) 推荐(0) 编辑
摘要:转换数字时,判断溢出必须使用小于或者大于,不能使用小于等于或者大于等于,以力扣第8题为例 int myAtoi(string s) { int i = 0; while(s[i] == ' ') i++; bool flag = false; if(s[i] == '+' || s[i] == '- 阅读全文
posted @ 2022-11-07 15:09 INnoVation-V2 阅读(29) 评论(0) 推荐(0) 编辑

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