【每日一题】周末问题合并帖 【周六】LeetCode 220. 存在重复元素 III思路这题请教了一下学长,确定就是一个滑动窗口的延伸,也是动态的查询一个区间,每次都判断区间边界一边的点是否符合,如果不符合,再看看边界另一边的点是否符合,如果两者有一个符合,则可以直接返回true,否则的话就继续向下寻找,直到找出符合条件的值即可 C++代码12345678910111213141516171819class Solution 2021-04-18 #算法 #leetcode #每日一题
【每日一题】LeetCode 87.扰乱字符串 LeetCode 87.扰乱字符串思路这道题目前没有思路…先贴一道标程等什么时候理解了再补,如果有会推DP的大佬欢迎指点小海豚- - C++代码1234567891011121314151617181920212223242526272829303132class Solution {public: bool isScramble(string s1, string s2) 2021-04-16 #acwing #算法 #leetcode #每日一题
【每日一题】LeetCode 213.打家劫舍II - 线性DP LeetCode 213.打家劫舍II思路这道题有一道前置题目,即LeetCode 198.打家劫舍,这道前置题目没有环形,是一道常规的线性DP,在每一步都分别判定选和不选的状态即可,而到了本题内,因为是环形的,那么在起始点(终点)的地方就要注意一下,这里起点终点相互影响,所以我们要用分支结构控制一下每个分支的计算的房子,防止少判断 C++代码123456789101112131415161718 2021-04-15 #acwing #算法 #leetcode #每日一题
【每日一题】面试高频考点 - LeetCode 208.实现Trie(前缀树) LeetCode 208. 实现Trie(前缀树)思路这是一道Trie树的标程题,按照Trie树的构建标准写即可,引用Wiki的一段 在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串。与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定。一个节点的所有子孙都有相同的前缀,也就是这个节点对应的字符串,而根节点对应空字符串。一般情况下 2021-04-14 #acwing #算法 #leetcode #每日一题
【每日一题】LeetCode 783.二叉搜索树节点最小距离 LeetCode 783.二叉搜索树节点最小距离思路今天的题都比较无脑,直接无脑dfs搜索最小差值,暴力搜索一遍得出的最后结果就是最小值 C++代码1234567891011121314151617181920212223242526272829303132333435363738/** * Definition for a binary tree node. * struct TreeNode 2021-04-13 #acwing #leetcode #树
【每日一题】LeetCode 179.最大数 LeetCode 179.最大数思路题意大概是给一个数组,然后数组内每个元素不能再拆分,进行排列后得到一个所有排列中数值最大的整数,这里思路比较明确,就是将其从大到小排序后(题目说明可以进行随意组合)逐项加入存储结果的字符串中即可,特别注意的是在极端情况即数组内含有[0,0]下有可能会出现双重前导0,对此要特别要进行一次处理。 C++代码123456789101112131415class Sol 2021-04-12 #acwing #算法 #leetcode
【AcWing】算法学习-二进制-更新中 二进制的笔记n的二进制表示中第k位是几,例如 n=15=(1111)2 思路 先把第k位移到最后一位(n>>k) 观察一下个位是几(x&1) 公式n>>k&1 函数lowbit(x)返回x的最后一位1 12x=1010 lowbit(x)=10x=101000 lowbit(x)=1000 实现原理:x&-x(= 2021-04-11 #acwing #二进制
【每日一题】LeetCode 263.丑数 LeetCode 263.丑数思路模拟题,根据题目条件写判断即可 C++代码123456789101112class Solution {public: bool isUgly(int n) { if(n<=0) return false; while(n%2==0) n/=2; while(n%3==0) n 2021-04-10 #acwing #leetcode #每日一题
【每日一题】LeetCode 154.寻找旋转排序数组中的最小值 II LeetCode 154.寻找旋转排序数组中的最小值 II思路这道题和前两天的每日一题解法基本一致,就是无论怎样旋转,他在一个分界点前后分别都是单调递增的,而这个分界点就是整个数组的最小值,如图 其中,最右侧的平行部分的数与最左边平行数相同,这部分不满足二分性质,因此需要去掉(或者加一条相同数取较小序号应该也可以执行,可以自行尝试下)因此,只需要通过二分法找到这个最小分界点即可,为了避免对边界情 2021-04-09 #acwing #leetcode #每日一题
【每日一题】LeetCode153.寻找旋转排序数组中的最小值 LeetCode153.寻找旋转排序数组中的最小值思路这道题的大概意思是将数组进行顺序(划重点)变换以后,要求最终的最小的元素,题目指出的数据量只有5000,那么直接线性搜索应该也可以过,但是这道题用二分的思路来考虑的话会更有趣一些。先看看体面中的例子 数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1], a[2], 2021-04-08 #acwing #leetcode #每日一题