![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Tis
文章平均质量分 76
aNormalcoder
这个作者很懒,什么都没留下…
展开
-
[35] 生命游戏 和 缺失的第一个正数
根据 百度百科 ,,简称为,是英国数学家约翰·何顿·康威在 1970 年发明的细胞自动机。给定一个包含m × n个格子的面板,每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态: 1 即为(live),或0即为(dead)。m x nboard。原创 2023-11-01 16:53:44 · 67 阅读 · 0 评论 -
[34]四数相加 II 和 盛最多水的容器
给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足:0 <= i, j, k, l < nnums1[i] + nums2[j] + nums3[k] + nums4[l] == 0哈希表查询,把4个数组的问题拆分为两个,这样循环的复杂度会低一些。盛最多水的容器题目要求给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i])原创 2023-09-11 19:28:35 · 72 阅读 · 0 评论 -
[33]除自身以外的数组的乘积 & 螺旋矩阵
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积。题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。原创 2023-09-09 14:13:54 · 68 阅读 · 0 评论 -
[30]分数转化为小数和两整数之和
注意到对于相同的余数,计算得到的小数的下一位数字一定是相同的,因此如果计算过程中发现某一位的余数在之前已经出现过,则为找到循环节。为了方便处理,首先根据分子和分母的正负决定结果的正负(注意此时分子和分母都不为 0),然后将分子和分母都转成正数,再计算长除法。由于给定的分子和分母的取值范围都是 [−231,231−1],为了防止计算过程中产生溢出,需要将分子和分母转成 64 位整数表示。计算小数部分时,每次将余数乘以 10,然后计算小数的下一位数字,并得到新的余数。*内容来自leetcode。原创 2023-05-14 17:56:04 · 51 阅读 · 0 评论 -
[28]Excel表列序号和Pow(x, n)
不同长度的列名称所能表示的列的个数是可以算出来的,比如一个长度为1的列所能表达的列范围为1-26,长度为2的列所能表达的范围为27-26*26,以此类推。所以可以通过列名称的长度推断出当前长度能表示的列序号的起点,比如长度为3 的列名称表示序号的起点为"AAA"表示的26*26+1。然后再根据不同的字母进行累加,比如"ACA"就是在"AAA"的基础上加26*3,最终就可以得到最后的结果。实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。递归的实现是根据迭代的代码改的。原创 2023-05-09 13:01:17 · 51 阅读 · 0 评论 -
[27]快乐数和阶乘后的零
1,n]中 p 的倍数有 n1=⌊n/p⌋个,这些数至少贡献出了 n1个质因子 p。p^2的倍数有 n2=⌊n/p^2⌋ 个,由于这些数已经是 p 的倍数了,为了不重复统计 p 的个数,我们仅考虑额外贡献的质因子个数,即这些数额外贡献了至少 n2 个质因子 p。可以用一个hashmap来记录每一次得到的数字,如果是在后续的结果中出现了之前已经出现过的数字,则不是欢乐数。但是糟糕的是,把阶乘算出来之后再去判断,很麻烦,大一点的数字就超时了。既然是要算阶乘后面的0,就得先把阶乘算出来,然后再考虑0的事。原创 2023-04-22 20:04:11 · 32 阅读 · 0 评论 -
[26]二叉树的序列化与反序列化和常数时间插入、删除和获取随机元素
但是一看到例子给出的输入输出,发现序列化和遍历并非一回事,给出的序列中含有null值,那也可以在树的序列中加入null值,这样就相当于在遍历的基础上增加了额外的信息,就可以反序列来得到树的结构。在本地进行测试发现,当set中存在3种元素时,循环n次,无论运行多少次,三种元素取的次数都是一样的,相较于random.choice得到的,不具有随机性。否则,返回 false。最开始的时候,考虑到不能通过任意一种遍历方式来得到原本的二叉树,因此考虑需要在序列化的时候同时得到两种遍历方式的结果,好像很麻烦。原创 2023-04-20 16:21:24 · 42 阅读 · 0 评论 -
[24]跳跃游戏和不同路径
以一个数组来看,向下为1,向右为2,那么数组中1和2的个数是一定的,只是顺序问题,所以只需要找到全部的排序方式就可以了,在数学上来说就是一个排列组合问题。如果需要每一个路径的全部过程,可以考虑回溯算法,但是此题只需要总的路径数。由于我们每一步只能从向下或者向右移动一步,因此要想走到 (i,j),如果向下走一步,那么会从 (i−1,j)(i-1, j)(i−1,j) 走过来;官方给出的思路是维护最大可达距离,如果最大可达超过最后一个数的位置,则说明可达,如果到最后还是小于最后一个数的位置,则说明不可达。原创 2023-04-14 16:06:08 · 40 阅读 · 0 评论 -
[22]在排序数组中查找元素的第一个和最后一个位置和合并区间
请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。两个区间有没有重叠的条件为,区间1的右端点大于区间2的左端点,且区间1的左端点小于区间2的右端点。否则,它们重合,我们需要用当前区间的右端点更新数组 merged 中最后一个区间的右端点,将其置为二者的较大值。输入:intervals = [[1,3],[2,6],[8,10],[15,18]]解释:区间 [1,3] 和 [2,6] 重叠, 将它们合并为 [1,6].输出:[[1,6],[8,10],[15,18]]原创 2023-04-10 12:21:20 · 57 阅读 · 0 评论 -
[21]数组中的第K个最大元素和寻找峰值
在上述算法中,如果我们固定选取 i 为 [l,r]的中点,那么每次可行的下标范围会减少一半,成为一个类似二分查找的方法,时间复杂度为 O(logn)。如果 nums[i]<nums[i+1],那么我们抛弃 [l,i]的范围,在剩余 [i+1,r]的范围内继续随机选取下标;如果 nums[i]>nums[i+1],那么我们抛弃 [i,r]的范围,在剩余 [l,i−1]的范围内继续随机选取下标。请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。原创 2023-04-04 18:37:13 · 100 阅读 · 0 评论 -
[20]颜色分类和前k个高频元素(堆的使用)
这里需要注意的一个问题是,在堆中的数据是以(x,y)的形式存在时,默认是以x来进行大小的判断的,而这道题中是要以计数的大小,也就是y来进行判断,所以在写入堆和判断时需要交换一下num和val的次序。写完这个再回去看我写的,有种原始的美感。这样考虑的问题在于忽略了nums中的数的大小是有可能比数组的大小更大的,就不能让记录数组的大小为nums数组的大小。值得一提的是,由于排序是通过调用sortColors()这个函数来完成的,最后修改原数组时使用的是nums[:],如果使用nums,则原数组不会有任何变化。原创 2023-04-03 13:41:32 · 45 阅读 · 0 评论 -
[19]子集和单词搜索
子集和单词搜索原创 2023-03-28 16:04:07 · 39 阅读 · 0 评论 -
[18]括号生成和全排列
括号生成和全排列原创 2023-03-25 13:53:41 · 125 阅读 · 0 评论 -
[17]岛屿数量和电话号码的字母组合
回溯过程中维护一个字符串,表示已有的字母排列(如果未遍历完电话号码的所有数字,则已有的字母排列是不完整的)。每次取电话号码的一位数字,从哈希表中获得该数字对应的所有可能的字母,并将其中的一个字母插入到已有的字母排列后面,然后继续处理电话号码的后一位数字,直到处理完电话号码中的所有数字,即得到一个完整的字母排列。直到队列为空,搜索结束。回溯算法用于寻找所有的可行解,如果发现一个解不可行,则会舍弃不可行的解。在这道题中,由于每个数字对应的每个字母都可能进入字母组合,因此不存在不可行的解,直接穷举所有的解即可。原创 2023-03-24 12:55:43 · 55 阅读 · 0 评论 -
[16]填充每个节点的下一个右侧节点指针和二叉搜索树中第K小的元素
填充每个节点的下一个右侧节点指针和二叉搜索树中第K小的元素原创 2023-03-21 12:43:16 · 40 阅读 · 0 评论 -
[14]二叉树的中序遍历和二叉树的锯齿形层次遍历
二叉树的中序遍历和二叉树的锯齿形层次遍历原创 2023-03-16 17:30:02 · 38 阅读 · 0 评论 -
[13] 奇偶链表和相交链表
奇偶链表和相交链表原创 2023-03-15 11:12:04 · 243 阅读 · 0 评论 -
[10] 矩阵置零和字母异位词分组
矩阵置零和字母异位词分组原创 2023-03-05 14:12:00 · 82 阅读 · 0 评论 -
[9] 三数之和
三数和原创 2023-03-04 15:46:34 · 54 阅读 · 0 评论 -
[8] 最长公共前缀
最长公共前缀原创 2023-03-03 14:43:01 · 63 阅读 · 0 评论 -
[7] 旋转图像和外观数列
旋转图像和外观数列原创 2023-03-02 21:03:03 · 46 阅读 · 0 评论 -
[6] 有效的数独
九宫格原创 2023-03-01 17:54:37 · 125 阅读 · 0 评论 -
[5] 有效的括号和缺失数字
有效的括号和缺失数字原创 2023-02-28 14:41:11 · 44 阅读 · 0 评论 -
[4] 颠倒二进制位和杨辉三角
颠倒二进制位和杨辉三角原创 2023-02-27 20:36:33 · 105 阅读 · 0 评论 -
[3] 位1的个数 和 汉明距离
位1的个数 和 汉明距离原创 2023-02-25 12:06:47 · 33 阅读 · 0 评论 -
[2] 3的幂和罗马数字转整数
3的幂和罗马数字原创 2023-02-24 16:20:53 · 47 阅读 · 0 评论 -
[1]Fizz Buzz 和计数质数
做题总结,FizzBuzz和质数计数原创 2023-02-23 18:26:20 · 129 阅读 · 2 评论