自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 收藏
  • 关注

原创 kmp算法

终于还是踏上了算法这条不归路,记录一下做题的历程KMP算法用以解决串匹配问题,蛮力算法的缺点在于每次匹配失败后向后移动一个字符继续匹配继续匹配。尽管第一次匹配是有必要的,但后续的大量重复匹配就没有必要了。蛮力算法,eg:kmp算法的大致过程:next表的建立是基于模式串中已匹配的串中相似的前缀和后缀,简单的说,就是已匹配前缀中的前缀和后缀有相同部分。大致过程如下(以上图为例):注:若前缀中含有多个相似的前缀和后缀,kmp会选择右移最小的那个(相对安全),同时也表明舍弃的那部分对齐位置确实是不

2021-04-24 20:16:51 103

原创 移除元素

终于还是踏上了算法这条不归路,记录一下做题的历程移除元素给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例输入:nums = [3,2,2,3], val = 3输出:2, nums = [2,2]解释:函数应该返回新的长度 2, 并且 nums 中的前两个元素均为 2。你不需

2021-04-19 15:03:09 82

原创 删除有序数组中的重复项

删除有序数组中的重复项给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len = remove

2021-04-18 09:54:04 1175 1

原创 最大数

终于还是踏上了算法这条不归路,记录一下做题的历程最大数给定一组非负整数 nums,重新排列每个数的顺序(每个数不可拆分)使之组成一个最大的整数。注意:输出结果可能非常大,所以你需要返回一个字符串而不是整数。示例输入:nums = [10,2]输出:“210”输入:nums = [3,30,34,5,9]输出:“9534330”输入:nums = [1]输出:“1”输入:nums = [10]输出:“10”排序按照字符合并后的情况(自定义方式)进行排序后,进而

2021-04-12 17:00:25 128

原创 丑数 II

丑数 II给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是只包含质因数 2、3 和/或 5 的正整数。示例输入:n = 10输出:12解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。输入:n = 1输出:1解释:1 通常被视为丑数。最小堆有完全二叉树的特点,堆内元素升序排序。第一次使用优先队列的stl,查了一下相关资料。定义:priority_queue<Type, Container, F

2021-04-11 16:47:33 81

原创 丑数

终于还是踏上了算法这条不归路,记录一下做题的历程丑数给你一个整数 n ,请你判断 n 是否为 丑数 。如果是,返回 true ;否则,返回 false 。丑数就是只包含质因数 2、3 和/或 5 的正整数。示例输入:n = 6输出:true解释:6 = 2 × 3输入:n = 8输出:true解释:8 = 2 × 2 × 2输入:n = 14输出:false解释:14 不是丑数,因为它包含了另外一个质因数 7 。输入:n = 1输出:true解释:1 通常

2021-04-10 20:10:04 68

原创 寻找旋转排序数组中的最小值 II

终于还是踏上了算法这条不归路,记录一下做题的历程寻找旋转排序数组中的最小值 II已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,4,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,4]若旋转 7 次,则可以得到 [0,1,4,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[

2021-04-09 19:52:49 73

原创 寻找旋转排序数组中的最小值

终于还是踏上了算法这条不归路,记录一下做题的历程寻找旋转排序数组中的最小值已知一个长度为 n 的数组,预先按照升序排列,经由 1 到 n 次 旋转 后,得到输入数组。例如,原数组 nums = [0,1,2,4,5,6,7] 在变化后可能得到:若旋转 4 次,则可以得到 [4,5,6,7,0,1,2]若旋转 7 次,则可以得到 [0,1,2,4,5,6,7]注意,数组 [a[0], a[1], a[2], …, a[n-1]] 旋转一次 的结果为数组 [a[n-1], a[0], a[1],

2021-04-08 16:42:39 262

原创 搜索旋转排序数组 II

终于还是踏上了算法这条不归路,记录一下做题的历程搜索旋转排序数组 II已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。在传递给函数之前,nums 在预先未知的某个下标 k(0 <= k < nums.length)上进行了 旋转 ,使数组变为[nums[k], nums[k+1], …, nums[n-1], nums[0], nums[1], …,nums[k-1]](下标 从 0 开始 计数)。例如, [0,1,2,4,4,4,5,6,6,7] 在下标 5 处

2021-04-07 10:16:10 73

原创 删除有序数组中的重复项 II

删除有序数组中的重复项 II给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 最多出现两次 ,返回删除后数组的新长度。不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。说明:为什么返回数值是整数,但输出的答案是数组呢?请注意,输入数组是以「引用」方式传递的,这意味着在函数里修改输入数组对于调用者是可见的。你可以想象内部操作如下:// nums 是以“引用”方式传递的。也就是说,不对实参做任何拷贝int len =

2021-04-06 16:58:31 202

原创 合并两个有序数组

终于还是踏上了算法这条不归路,记录一下做题的历程合并两个有序数组给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。初始化nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 的空间大小等于 m + n,这样它就有足够的空间保存来自nums2 的元素。示例输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3输出:[1,2,2,

2021-04-05 11:46:06 494

原创 森林中的兔子

终于还是踏上了算法这条不归路,记录一下做题的历程森林中的兔子森林中,每个兔子都有颜色。其中一些兔子(可能是全部)告诉你还有多少其他的兔子和自己有相同的颜色。我们将这些回答放在 answers 数组里。返回森林中兔子的最少数量。示例输入: answers = [1, 1, 2]输出: 5解释: 两只回答了 “1” 的兔子可能有相同的颜色,设为红色。 之后回答了“2” 的兔子不会是红色,否则他们的回答会相互矛盾。 设回答了 “2” 的兔子为蓝色。 此外,森林中还应有另外 2 只蓝色兔子的

2021-04-04 20:42:00 86

原创 最长公共子序列

终于还是踏上了算法这条不归路,记录一下做题的历程最长公共子序列给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。一个字符串的 子序列是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,“ace” 是 “abcde” 的子序列,但 “aec” 不是 “abcde” 的子序列。两个字符串的 公共子序列 是这两个字符串所共同拥有的子序列。示例

2021-04-03 19:40:17 69

原创 直方图的水量

终于还是踏上了算法这条不归路,记录一下做题的历程直方图的水量给定一个直方图(也称柱状图),假设有人从上面源源不断地倒水,最后直方图能存多少水量?直方图的宽度为 1。示例:输入: [0,1,0,2,1,0,1,3,2,1,2,1]输出: 6双指针使用左右两指针和左右高度最大值数组。 两指针相遇时结束循环,未相遇时,一边高度的最大值 - 一边当前位置的高度 = 此次的存水量(左右两边)。class Solution {public: int trap(vector&

2021-04-02 22:23:37 234

原创 笨阶乘

终于还是踏上了算法这条不归路,记录一下做题的历程笨阶乘通常,正整数 n 的阶乘是所有小于或等于 n 的正整数的乘积。例如,factorial(10) = 10 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1。相反,我们设计了一个笨阶乘clumsy:在整数的递减序列中,我们以一个固定顺序的操作符序列来依次替换原有的乘法操作符:乘法(*),除法(/),加法(+)和减法(-)。例如,clumsy(10) = 10 * 9 / 8 + 7 - 6 * 5 / 4 + 3 - 2

2021-04-01 21:08:02 78

原创 颠倒二进制位

终于还是踏上了算法这条不归路,记录一下做题的历程颠倒二进制位颠倒给定的 32 位无符号整数的二进制位。示例输入:n = 00000010100101000001111010011100 输出:964176192(00111001011110000010100101000000) 解释:输入的二进制串00000010100101000001111010011100 表示无符号整数 43261596,因此返回 964176192,其二进制表示形式为 00111001011110000010

2021-03-29 16:04:12 142

原创 扁平化嵌套列表迭代器

终于还是踏上了算法这条不归路,记录一下做题的历程/** * // This is the interface that allows for creating nested lists. * // You should not implement it, or speculate about its implementation * class NestedInteger { * public: * // Return true if this NestedInteger hol

2021-03-23 19:57:08 82

原创 keystone和findcrypto插件下载

keystonefindcryptohttps://www.jianshu.com/p/d36d943f648dhttps://bbs.pediy.com/thread-222556.htmhttps://blog.csdn.net/szxpck/article/details/107203718github上下载findcrypto https://github.com/polymorf/findcrypt-yara然后将findcrypt3.py和findcrypt3.rules复制到id

2021-03-23 10:31:04 558

原创 frida安装

记录一下自己从安装frida到完成一次apk脱壳的过程以及在安装过程中遇到的坑frida安装py2安装frida注:推荐py2安装frida,以免后续出现各种"意外情况"pip安装frida及其依赖库pip install numpy matplotlib # 好像是frida的依赖库,开始时没有安装此库,,frida安装都是以失败告终pip install frida# pip install frida-tools # 后面听说py2好像不用安装frida-tools先查看一下

2021-03-23 10:30:36 1180

原创 位1的个数

终于还是踏上了算法这条不归路,记录一下做题的历程。位1的个数编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。例如:输入:00000000000000000000000000001011 输出:3 解释:输入的二进制串00000000000000000000000000001011 中,共有三位为 ‘1’。本质还是计数。循环检查二进制位这个想法还是挺好理解的我们可以直接循环检查给定整数 n 的二进制位的每一位

2021-03-22 22:16:39 132

原创 目录

算法小白终于还是踏上了算法这条不归路,记录一下做题历程,刚开始没意外的话应该是以看题解为主(我为什么这么菜o(╥﹏╥)o)虽然是目录,不过还没想好怎么分类,先鸽在这吧。

2021-03-22 22:07:32 46

原创 angr环境配置

sudo apt-get install python3.7# 安装python3.7sudo apt-get -y install python3.7 python3.7-dev python3-pip# 安装python3.7-dev啥玩意和pippython3.7 -m pip3 install pip --upgradepip3 install --upgrade pip# 升级pipsudo update-alternatives --install /usr/bin/python

2020-08-29 09:59:04 253

原创 apktool环境配置

1.复制脚本,并存为bat文件(apktool.bat)(这里没有用官网下载的apktool.bat)@echo off if “%PATH_BASE%” == “” set PATH_BASE=%PATH% setPATH=%CD%;%PATH_BASE%; java -jar -Duser.language=en“%~dp0\apktool.jar” %1 %2 %3 %4 %5 %6 %7 %8 %9后面和教程一样了2.下载最新版apktool:https://bitbucket.o

2020-05-18 17:52:45 1890

原创 随机行走——数据结构算法实验

随机行走——数据结构算法实验实验要求代码1代码2代码3实验要求代码1#include<iostream>#include<vector>#include<ctime>using namespace std;int row;//, column; // 好吧,,其实column好像没做什么事;vector<vector&lt...

2020-05-08 10:27:27 732

原创 四叶草交流友谊赛

迷路的菜鸟,CTF从入门到放弃。几天没做题,提不动刀了。easyYM运行程序。直接输出了flag?其实并没有,题目描述也说了这不是真正的flag,真正的flag格式是flag{}。拖进IDA,好像没什么有用信息。(作者太菜,在这里还绕了好久)看看题目描述,关键函数并不一定执行到了。看看汇编代码。好吧,调用主函数之前还执行了下面这段代码,这里应该就是关键代码。在下面其...

2020-05-08 10:24:44 454

原创 BUUCTF-re-SimpleRev(3)

一级目录拖入ida,查看main函数,输入d/D开始程序。unsigned __int64 Decry(){ char v1; // [rsp+Fh] [rbp-51h] int v2; // [rsp+10h] [rbp-50h] int v3; // [rsp+14h] [rbp-4Ch] int i; // [rsp+18h] [rbp-48h] int v5;...

2020-04-12 10:00:10 280

转载 BUU-re-rsa(2)

rsa1.文件分析2.公钥处理2.1 提取公钥2.2 公钥解析(提取e,n)2.3公钥解析(提取p,q)3.脚本解密4.get flag!1.文件分析第一次遇到这种题,不过看到题目知道这是一个rsa解密题。公钥n = p * q,其中p和q是两个大素数e是随机选择的数,作为公钥d是跟e有关的一个数,满足条件式:ed=1(mod phi(n))phi(n)是欧拉函数,phi(n)=(p...

2020-04-06 14:08:19 367

原创 LC0058-左旋转字符串

注:以下内容参考力扣题解,仅用于学习和记录不同算法实现,如有侵权请联系本人修改。题目地址:https://leetcode-cn.com/problems/zuo-xuan-zhuan-zi-fu-chuan-lcof/左旋字符串题目描述解题思路一、循环取余赋值二、三次旋转三、切片题目描述字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的...

2020-04-05 16:24:02 139

原创 BUUCTF-re-新年快乐(1)

在re中迷路的菜鸟,从入门到放弃。题目:下载地址拖入ExeinfoPE或PEID中查看,发现有UPX壳。upx脱壳拖入ida中查看。找到关键函数,输入Str1与Str2比较。输入Str1即为:HappyNewYear!flag{HappyNewYear!}...

2020-04-04 18:29:55 1607

原创 BUUCTF-re-reverse_2(0)

题目:下载地址拖进ida_64,查看main()函数。找到关键代码,输入与flag比较。当前flag为:{hack1ng_fo1_fun}

2020-04-04 17:49:12 263

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除