【每日一题】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 #每日一题
LeetCode.81-每日一题-搜索旋转排序数组 II LeetCode81 搜索旋转排序数组 II本题分析到的最坏情况下的最好复杂度的解法均为线性解法,所以就拿线性解法做了,时间复杂度是O(n) C++代码1234567891011class Solution {public: bool search(vector<int>& nums, int target) { for(auto &am 2021-04-07 #leetcode #每日一题
buu-RE-maze-花指令 初识下载文件并解压后,首先放入PEID检测 发现有UPX壳,快速脱壳后,再次检测,为VC++编写的32位程序,拖入IDA进行进一步分析 相知一打开首先发现main函数无法编译,有一个地方函数出现了错误,初步判定为花指令,再查看字符串列表 由此可知,关键词并没有被IDA解析出引用,因此判定应该关键部分都在main函数内,那么下一步,就是把这个花指令处理以后就知道应该如何操作了 整活在这一部分有一个j 2021-04-01 #RE #buu #花指令