- 博客(20)
- 收藏
- 关注
原创 bupt拆解二进制炸弹bomb
bupt拆解二进制炸弹bombfunc4连看了好几遍,觉得没有错误,就看phase_4函数,这个函数有一个让我感到奇怪的是它将[rsp+4]放入第三个参数的寄存器里,但是并没有在函数里使用第三个参数(这个感觉还是很奇怪的,上网查了也没有答案)。我后来灵机一动,去查看了一下[rsp] 和 [rsp+4] 里的值,没想到它[rsp]存的是输入的第二个参数,[rsp+4]存的是第一个参数!首先进入第一次调用,查看传入的参数,为我们输入的字符串,退出了,再查看第二次调用,函数寄存器里的参数,知道了输入为两个整型。
2022-11-12 16:02:50 1135 1
原创 深度学习--迁移学习
一般来说,下面这些层学到的是底层的特征,跟上面的层没有太多的关系,也许换一个数据集来说,这些边边角角的泛化性也是非常好的。假如在一个数据集上做好预训练模型了,在新的任务中,模型的卷积层复制过去就好,调整的是最上面的决策层,只要告诉模型怎么做决策就好了,下面特征提取的任务预训练任务已经做好了,最后根据误差调整一下卷积层。要限制搜索空间:蓝色的点是泛化误差最小的点,而红色的点是数据集上训练误差最小的点,蓝色的才是我们最终想要的,所以在这个数据集上训练过多并不是一件好事,所以叫做微调。
2022-11-04 11:33:28 642
原创 725.分隔链表
725.分隔链表给你一个头结点为 head 的单链表和一个整数 k ,请你设计一个算法将链表分隔为 k 个连续的部分。每部分的长度应该尽可能的相等:任意两部分的长度差距不能超过 1 。这可能会导致有些部分为 null 。这 k 个部分应该按照在链表中出现的顺序排列,并且排在前面的部分的长度应该大于或等于排在后面的长度。返回一个由上述 k 部分组成的数组。
2022-09-14 15:47:18 157
原创 460.LFU 缓存
请你为 最不经常使用(LFU)缓存算法设计并实现数据结构。实现 LFUCache 类:LFUCache(int capacity) - 用数据结构的容量capacity 初始化对象int get(int key)- 如果键key 存在于缓存中,则获取键的值,否则返回 -1 。void put(int key, int value)- 如果键key 已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量capacity 时,则应该在插入新项之前,移除最不经常使用的项。在此问题
2022-09-13 21:39:00 302 1
原创 82. 删除排序链表中的重复元素 II
82. 删除排序链表中的重复元素 II;给定一个已排序的链表的头head ,删除原始链表中所有重复数字的节点,只留下不同的数字。返回 已排序的链表。
2022-09-08 10:27:18 182
原创 两两交换链表中的结点
两两交换链表中的结点;给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。;当cur指向最后一个结点(有偶数个结点) 或者是倒数第二个结点(链表结点有奇数个)的时候,循环终止,这时候链表交换完毕,而原先的头结点已经变成第二个结点了,因此在定义pre的时候我们应该再定义一个指针temp,让其指向pre,最终我们要返回的就是temp.next。给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。
2022-09-08 08:34:48 83
原创 合并两个有序链表
合并两个有序链表,将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。再进行循环判断:如果list1指向的值小于等于list2指向的值,那么pre.next就指向list1,而list1要指向list1的下一个结点,pre也要向前推进一格指向pre.next,循环终止的条件就是有一个链表已经遍历完毕了,这时候就将pre.next指向剩余链表的剩余部分。递归在排序和寻找最大最小值的时候思路非常清晰,
2022-09-07 20:05:47 305
原创 字符串相乘
43.字符串相乘;给定两个以字符串形式表示的非负整数num1和num2,返回num1和num2的乘积,它们的乘积也表示为字符串形式而10^(m+n) 的位数为m+n+1位,同时10^(m+n) 是m+n+1位数的最小值。假设一个是10^(n)-1 , 一个是10^(m)-1,也就是相同位数的最大值。
2022-09-07 15:25:58 1308
原创 最长公共前缀
最长公共前缀,题目不难,注意数组越界,要先找到最小的字符串长度,在逐一比较。编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。
2022-09-07 10:10:48 75
原创 8. 字符串转换整数 (atoi)
具体来说,小于 −231 的整数应该被固定为 −231 ,大于 231 − 1 的整数应该被固定为 231 − 1。将前面步骤读入的这些数字转换为整数(即,"123" -> 123, "0032" -> 32)。注意:栈溢出后,res / 10 就不再是上一个循环的res了,所以我们可以设置一个辅助值last,用来判断是否栈溢出 (超过Int类型的范围)请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数)。
2022-09-06 15:59:12 84
原创 Z字形变化
Z字形性变化换。将Z字的竖线和折线当成一组,这样可以算出,当给定的numRows>2时,一组的组长就是numRows*2-2(代码里面的arm)。还有一个细节,在算有几个组的时候,我们用(字符串的长度+组的长度-1)%(组的长度),这样算出来的组数刚好,不用考虑包含不到最后几个字符。之后,你的输出需要从左往右逐行读取,产生出一个新的字符串,比如:"PAHNAPLSIIGYIR"。这段代码的fori循环里面还有很多是重复的代码,因为我比较懒,还没有将代码删减掉,所以就不管了。
2022-09-06 10:33:27 95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人