
每日一题
中南自动化学院至渝
好记性不如烂笔头,多写写
展开
-
167. 两数之和 II - 输入有序数组 剑指 Offer II 006. 排序数组中两个数字之和 653. 两数之和 IV - 输入 BST【每日一题】
167. 两数之和 II - 输入有序数组思路 最容易想到的肯定是暴力双循环,然后可能想得到二分,再熟悉点就是双指针了。思路简单,前后往中间找,反正题目说了一定有一个有效解。cppclass Solution {public: vector<int> twoSum(vector<int>& numbers, int target) { int l = 0;原创 2022-03-21 11:31:19 · 16351 阅读 · 0 评论 -
102. 二叉树的层序遍历 107二叉树的层序遍历||,429 N叉树的层序遍历【每日一题】
102. 二叉树的层序遍历思路 与前中后序遍历用栈不同,层序遍历用队列是一个很好的方法,每次都处理当前层,然后把当前层的左右孩子都入队列,处理完处理下一层,直到队列为空,处理结束cppclass Solution {public: vector<vector<int>> levelOrder(TreeNode* root) { vector<vector<in原创 2022-03-21 10:40:48 · 16594 阅读 · 0 评论 -
21. 合并两个有序链表 23. 合并K个升序链表【每日一题】
21. 合并两个有序链表思路 思路比较简单常规思路,和合并有序数组一样,分别去一个出来,然后比大小,结果加入小的一个,小的对应链表一个取新的出来,继续比较,直到其中一个比完了class Solution: def mergeTwoLists(self, list1: Optional[ListNode], list2: Optional[ListNode]) -> Optional[List原创 2022-03-15 17:19:35 · 15619 阅读 · 0 评论 -
647. 回文子串 5. 最长回文子串 【每日一题】
647. 回文子串 思路 重点是怎么统计回文子串,这儿用一个巧妙的定义 ,就是说我定义一个函数,计算以字符串第i个字符为中心的回文串个数,和以i i+1为中心的回文串长度以i为中心是考虑到 ABCBA型,即回文串是奇数个以i i+1为中心则是 ABBA型 ,回文串为偶数 有了这个我们只要遍历给的字符串的所有位置,进行累加原创 2022-03-15 16:58:26 · 15191 阅读 · 0 评论 -
589. N 叉树的前序遍历 590. N 叉树的后序遍历 N 叉树没有中序遍历【每日一题】
589. N 叉树的前序遍历 思路 和二叉树的前后序遍历基本是一样的/*// Definition for a Node.class Node {public: int val; vector<Node*> children; Node() {} Node(int _val) { val = _val; }原创 2022-03-10 17:07:52 · 15895 阅读 · 0 评论 -
144. 二叉树的前序遍历 94. 二叉树的中序遍历 145. 二叉树的后序遍历【每日一题】
144. 二叉树的前序遍历思路 都是递归;没得说,搞清楚前、中、后序的定义就懂了,为了更贴合,和更好解释,我这儿用c++写,改成c python都差不多,python太简洁反而不美。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; *原创 2022-03-10 15:57:47 · 15984 阅读 · 0 评论 -
798. 得分最高的最小轮调【每日一题】
798. 得分最高的最小轮调思路思路1遍历所有下标,计算对应的分,选最高的,每次就是先构造新的nums出来,然后放到函数里面计算得分,这个得分也要遍历, N^2 估计不能过a=0b= len(nums) nums[0:b-1,],temp[b] = nums[1:b], nums[0]思路二我们注意到 0 <= nums[i] < nums.length,那么换句话说每次吧最前面的那个数移到最后,必然得分,移位前和移位后有啥联系呢,ennnm,移位后原创 2022-03-09 15:53:30 · 15079 阅读 · 0 评论 -
2055. 蜡烛之间的盘子 【每日一题】
2055. 蜡烛之间的盘子思路 我们要怎么才能得到中间的盘子数呢,显然有个烟雾弹是两个蜡烛,其实我们只要知道这个区间[start,end]从前往后的第一个| 前面的盘子数 和从后往前的第一个| 之前的盘子数就行了,在蜡烛中间的盘子数等于后者减前者,只要想到这儿就基本代码出来了, 问题是怎么才原创 2022-03-09 15:46:19 · 15096 阅读 · 0 评论 -
1319. 连通网络的操作次数 547. 省份数量 200. 岛屿数量 1202. 交换字符串中的元素 【每日一题】【并查集集合】
先来两道标准的并查集题目,只需要写好模板,然后一个个遍历联通,最后返回连通域数量就行1319. 连通网络的操作次数思路 n台电脑只要有n-根线就一定能找到某种操作方式联通,那么这个操作次数是多少呢,其实我每次用一根线就能把两个不连通的连通域连在一起,拿答案就出来了,返回连通域个数-1,直接原创 2022-03-07 22:48:25 · 15115 阅读 · 0 评论 -
math模块的pow()计算幂时提示OverflowError: math range error (python)
背景 刷题的时候用 ** 提示超时,就想着利用 python的 math 模块偷个懒,因为math.pow() 始终调用c语言写的那个代码,时间复杂度老低了,可能会加快速度,但是出现了错误,没办法只能手写快速幂错误原因 math.pow()函数计算幂运算,因为结果数值过大导致溢出。解决办法原创 2022-03-07 09:47:38 · 18013 阅读 · 0 评论 -
50. Pow(x, n) 快速幂【每日一题】
50. Pow(x, n)思路 快速幂的实现,思路很简单,类比了二进制数转十进制的法子,比如 1001 = 1 * 23+0 * 22+0 * 21+1 * 20。那么xn,你假设 n=5 ,n = 101是吧,x^5 = *x^(4*1) * x^(2*0) * x^(1*1)那不就是把 n 对应 1 的位置相乘嘛,因为任何数的0次方都是1,所以0的位置可以不用管,而且,基数是从x^1-原创 2022-03-07 09:39:30 · 15192 阅读 · 0 评论 -
504. 七进制数【每日一题】
504. 七进制数思路 所有的进制转换都可以用辗转相除法解决,就硬生生模拟辗转相除法代码class Solution: def convertToBase7(self, num: int) -> str: if num == 0: # 特殊判断 return "0" ans=[] flag = ""原创 2022-03-07 09:19:11 · 14996 阅读 · 0 评论 -
2100. 适合打劫银行的日子 【每日一题】
2100. 适合打劫银行的日子思路 第i 天可不可以打劫,取决于前面有几个非递增的,后面有几个非递减的,换句话说我只要知道第i个位置前面非递增序列个数 和后面非递减个数就可以了,值得注意的是恰好后面非递减是从后往前的非递增,所以思路就出来了1、计算每个位置从前往后的非递增长度数组2、计算每个位置从后往前的非递增长度数组(其实就是从前往后的非递减了)3、遍历所有位置,比较对应位置长度是不是满足代码c原创 2022-03-06 22:52:34 · 15002 阅读 · 0 评论 -
344. 反转字符串 541. 反转字符串 II 557. 反转字符串中的单词 III【每日一题】
344. 反转字符串 541. 反转字符串 II557. 反转字符串中的单词 III334思路 344 他叫你必须原地修改输入数组,那么就是说直接调函数reversed() 不行,明显这种前后交换就是一个双指针,交换前后。前面的往后走,后面的往前走class Solution: def reverseString(self, s: List[str]) -> None: """原创 2022-03-04 16:37:42 · 15260 阅读 · 0 评论 -
2104. 子数组范围和 【每日一题】
2104. 子数组范围和思路 暴力模拟,没次都找到以i开头j结尾的最大值最小值,然后再最终结果上加上这个差值,代码class Solution: def subArrayRanges(self, nums: List[int]) -> int: ans= 0 for i in range(len(nums)): # 不断加上以第i个数开头的子数组范围之差原创 2022-03-04 11:10:56 · 14976 阅读 · 0 评论 -
135. 分发糖果 【每日一题】
135. 分发糖果思路 两次遍历,先从左到右计算出每个人的糖果数,这一步就是后一个比前一个大就在前一个基础上+1,不然置为1,从这个思路来来看,我们这一趟酒吧升序的给基本算好了,但是降序的我们现在全是1。 我们就从右到左遍历一次,这一次,前一个比后一个大,就在后一个的基础上+1,否则就是置1,然后得到从后往前原创 2022-03-03 09:48:34 · 14900 阅读 · 0 评论 -
258. 各位相加 【每日一题】
258. 各位相加思路 我只想到最容易的解法,就是先每个位计算得到一个和。再把这个和当成新的数继续求和 直到这个和小于10 ,代码有两种写法,一种就是定义一个函数计算一个大于10的各位求和,一种就是不封装成函数代码封装成函数的class Solution: def addDigits(self, num: int) -> int: if num<原创 2022-03-03 09:29:22 · 15167 阅读 · 0 评论 -
34. 在排序数组中查找元素的第一个和最后一个位置【每日一题】
34. 在排序数组中查找元素的第一个和最后一个位置思路 没啥说的,就是左边界二分找左边界,右边界二分找右边界,二分这块内容,理解容易,细节魔鬼,我觉得我已经明白了,这次做还是犯了一个细节错误在右边界查找的时候代码class Solution: def searchRange(self, nums: List[int], target: int) -> List[int]:原创 2022-03-02 22:34:30 · 14934 阅读 · 0 评论 -
2016. 增量元素之间的最大差值 【每日一题】
2016. 增量元素之间的最大差值思路1 其实就是计算每个元素和该元素后面的最大值的差,然后每次都更新这个最大值,简单题都容易理解class Solution: def maximumDifference(self, nums: List[int]) -> int: ans=-1 for i in range(len原创 2022-02-26 21:17:59 · 14891 阅读 · 0 评论 -
1385. 两个数组间的距离值 【每日一题】
1385. 两个数组间的距离值思路1 循环遍历看是不是距离都满足大于d,都满足就+1,你满足就不加1代码class Solution: def findTheDistanceValue(self, arr1: List[int], arr2: List[int], d: int) -> int: # 暴力法 ans = 0原创 2022-02-26 10:08:06 · 14998 阅读 · 0 评论 -
832. 翻转图像 【每日一题】
832. 翻转图像思路 顾名思就是把一个二维数组每一行都倒序,然后黑白色颠倒(二值图像吗,就是0变1,1变0),1、list 反序 ,简单。直接 list[::-1]就有了2、0变1,1变0也好办,要是numpy的数组,直接利用 1-array就行了,但是这个是列表就稍稍麻烦点,用map做一个映射,即(list(map(lambda x:1-x,list))代码class S原创 2022-02-26 09:45:25 · 15241 阅读 · 0 评论 -
537. 复数乘法 【每日一题】
537. 复数乘法思路 这是一道披着中等难度外衣的简单题,直接模拟就完事,两个复数相乘,实部*实部-虚部*虚部=结果的实部,实部*虚部+实部*虚部=结果的虚部,唯一需要注意的点就是怎么获得实部和虚部,并将其转换为实数代码方法1 利用字符串分割和切片的手段来确定实部和虚部class Solution: def complexNumberM原创 2022-02-25 09:45:06 · 15717 阅读 · 0 评论 -
1706. 球会落何处 【内日一题】
题目链接思路 就模拟,硬生生的模拟1、遍历所有的入口的球 1-1 对于每个球,我们分别模拟,只有两种情况, 向左的挡板or向右的 a、向左 就看前一个是不是向左,是就可以到下一行 不是,卡住,在这儿要记得判断前一个是不是都到箱子最左边了 b、向右 就看后一个是不是也向右,事就能到下一行,接着判断原创 2022-02-24 14:51:00 · 14893 阅读 · 0 评论 -
917. 仅仅反转字母 【每日一题】
题目链接 917. 仅仅反转字母思路 1、先得到去掉非字母的字符串,这一步用正则就可以了2、然后反转字符串3、遍历原来的字符串,遇到是字母就加入反转的字母,不是字母的就加入非字母字符的本身(这一步就是在反转字母字符串中加入那些非字母的字符)4、转换成字符串返回完整代码class原创 2022-02-23 15:48:07 · 14844 阅读 · 0 评论 -
838. 推多米诺 【每日一题系列】
为了节约时间,我就直接放题目链接了,反正看着东西的要么是特意来找的,要么是一起刷题备战实习和秋招的 题目链接代码 思路写在代码注释里面了class Solution: def pushDominoes(self, dominoes: str) -> str: dom = 'L'+dominoes+'R' # 添加两个虚拟节点更方便处理原创 2022-02-21 16:52:22 · 14936 阅读 · 0 评论