随笔分类 - 算法题
摘要:构成特定和需要添加的最少元素 long long s = accumulate(nums.begin(), nums.end(), 0LL); 注意这里要写0LL, 不然会越界 a/b向上取整等于 (a + b - 1)/b 不等于 (a - 1)/b + 1 当a = 0时候(a + b - 1)
阅读全文
摘要:|LeetCode75 level3|| |-|-| |第 1 天|| |191. 位1的个数|| |136. 只出现一次的数字|| |90. 子集 II|| |第 2 天|| |5. 最长回文子串|| |49. 字母异位词分组|| |28. 找出字符串中第一个匹配项的下标|| |第 3 天|| |
阅读全文
摘要:这道题 闫总的模版和讨论区第一个可以看一下啊, 然后讨论区第一个当时有一个问题, 答主是这么回复我的. 记录一下: 问 do i++; while(q[i] < x); 会使得 q[l..i-1] <= x, q[i] >= x 这里 q[l..i-1] <= x 可以等于吗, 循环条件是小于叭 答
阅读全文
摘要:来自 | 题目分类 | 题目编号 | | | | |数组|| | 数组的遍历| 485、495、414、628| |485. 最大连续1的个数| | |495. 提莫攻击|| |414. 第三大的数| 一次遍历维护三个变量就行| |628. 三个数的最大乘积|维护三个最大和两个最小(包含了所有情况)
阅读全文
摘要:去除重复字母(困难) 拼接最大数(困难) 移掉 K 位数字(中等) 不同字符的最小子序列(中等) https://leetcode-cn.com/problems/remove-duplicate-letters/solution/yi-zhao-chi-bian-li-kou-si-dao-ti-
阅读全文
摘要:反转链表的代码如下 https://blog.csdn.net/qq_42351880/article/details/88637387 # Definition for singly-linked list. # class ListNode: # def __init__(self, x): #
阅读全文
摘要:你正在安装一个广告牌,并希望它高度最大。这块广告牌将有两个钢制支架,两边各一个。每个钢支架的高度必须相等。 你有一堆可以焊接在一起的钢筋 rods。举个例子,如果钢筋的长度为 1、2 和 3,则可以将它们焊接在一起形成长度为 6 的支架。 返回广告牌的最大可能安装高度。如果没法安装广告牌,请返回 0
阅读全文
摘要:有三种难度的题目分别为Easy/Medium/Hard,现在你总共有E+EM+M+MH+H道题,各个字符串的含义如下: 某个公众号总结在这里 E表示有E道题目难度为Easy EM表示有EM道题目难度为Easy或者Medium M表示有M道题目难度为Medium MH表示有MH道题目难度为Medium
阅读全文
摘要:题目:多多鸡打算造一本自己的电子字典,里面的所有单词都只由a和b组成。 每个单词的组成里a的数量不能超过N个且b的数量不能超过M个。 多多鸡的幸运数字是K,它打算把所有满足条件的单词里的字典序第K小的单词找出来,作为字典的封面。 输入描述: 共一行,三个整数N, M, K。(0 < N, M < 5
阅读全文
摘要:####题目1:飞行棋,输入K(距离),N(掷骰子的次数),问最后飞行棋到终点的距离是多少?,需要返回多少次?(因为飞行棋如果超出终点的话会返回的)如果为0的话输出“paradox”。 坑是最后一步到达终点,不能算输出paradox,96%ac。 以及k可以是0,这时直接输出 # k, n = li
阅读全文
摘要:题目 :在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。 示例 1: 输入: [7,5,6,4] 输出: 5 直接两次遍历是不行的,时间肯定会超。这里用到了归并排序中归并这一步的思想,来求逆序对。 浏览答案中会发现两个代码极
阅读全文
摘要:当给定的数组没有重复元素时 方法一:运用临时的path路径,然后一个标记是否访问的visit[]数组,来进行DFS 注意java中的一个bug,一个List加到另外一个List里面,前者改变的时候,后者也会改变 方法二: 利用交换的思想,每次都固定前面排好的一部分,直接在给定的数组上面操作,从而省去
阅读全文
摘要:输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 说明: 用返回一个整数列表来代替打印 n 为正整数 针对于大数的解法 lc上一个人写的。。
阅读全文
摘要:给出一个巧妙方法,可以消去二进制数最右边的1 而不用每次判断最后一位然后除以2,这个方法时间复杂度 空间 巧妙方法可以实现,时间复杂度,M为二进制数中1的个数 巧用 解析: 二进制数字 n最右边的 1 变成
阅读全文
摘要:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一格开始,每一步可以在矩阵中向左、右、上、下移动一格。如果一条路径经过了矩阵的某一格,那么该路径不能再次进入该格子。 例如,在下面的3×4的矩阵中包含一条字符串“bfce”的路径(路径中的字母用加粗标出
阅读全文
摘要:二分法的特殊情况有待继续学习 面试题11. 旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个递增排序的数组的一个旋转,输出旋转数组的最小元素。例如,数组 [3,4,5,1,2] 为 [1,2,3,4,5] 的一个旋转,该数组的最小值为1。 示例 1: 输
阅读全文
摘要:新建一个string a,对原string中的每一个字符(是char类型, 不会可以用auto),a +=,或者a.append 注意+=和append用法 append是不能直接用char做参数的,需要前面加个长度参数
阅读全文
摘要:hash 时间空间复杂度都是O(n) 下面是时间O(1) 空间O(n)的方法
阅读全文
摘要:K Sum 题目描述 给定一个输入数组 array(每个数不同),还有两个整数 k 和 target,在数组 array 中找出 k 个元素,使得这 k 个元素相加等于 target,问有多少种组合方式,输出组合方式的个数。 注:在一种组合方式中,一个元素不能够被重复选择 这里就说明了要用01背包的
阅读全文
