刷题笔记2020-06-26

MISC 2020-12-26任务笔记 攻防世界misc答题: 题目一: 下载附件发现是一个jar文件,查看源代码,使用 jd-gui可得flag,但发现格式不对,需要采用64base进行编译,才能得出正确的flag 题目二 打开下载文件提示RAR文件文件头损坏 打开winhex查看,发现65是flag.txt的文件结尾,A8 3C代表了校验码,所以7A代表了块类型,这里我们的块类型是文件头,所以改成74就可以正常解压文件 进行填充: 保存后解压,再把sercet.png丢到winhex里发现文件头为gif图,将图片后缀名改为.gif。 阅读详情
1.给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

leetcode136

def singleNumber(self, nums: List[int]) -> int:
        res = 0
        for num in nums:
            res ^= num
        return res
  • 异或运算有以下三个性质:
  1. 任何数和 0 做异或运算,结果仍然是原来的数,即 a ^ 0 = a。
  2. 任何数和其自身做异或运算,结果是 0,即 a ^ a = 0。
  3. 异或运算满足交换律和结合律,即 a ^ b ^ a = b ^ a ^ a = b ^ (a ^ a) = b ^ 0 = b。
  • 位运算
符号运算规则
&同为1结果才为1
|同为0结果才为0
^相同为0,不同为1
2.使用堆排序方法排序(45,78,57,25,41,89),初始堆为( )

A 78,45,57,25,41,89
B 89,78,57,25,41,45
C 89,78,25,45,41,57
D 89,45,78,41,57,25

  • 堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其子结点的值,称为大顶堆;或者每个结点的值都小于或等于其子结点的值,称为小顶堆。
    在这里插入图片描述
  • 对堆中的结点按层进行编号,将其映射到数组中:
    在这里插入图片描述
  • 堆排序的基本思路:
  1. 将无需序列构建成一个堆,升序采用大顶堆,降序采用小顶堆;
  2. 将堆顶元素与末尾元素交换,将最大元素"沉"到数组末端;
  3. 重新调整结构,使其满足堆定义,然后继续交换堆顶元素与当前末尾元素,直到整个序列有序。
/**
   * 调整大顶堆(仅是调整过程,建立在大顶堆已构建的基础上)
   * @param arr
   * @param i
   * @param length
   */
  public static void adjustHeap(int []arr,int i,int length){
      int temp = arr[i];//先取出当前元素i
      for(int k=i*2+1;k<length;k=k*2+1){//从i结点的左子结点开始,也就是2i+1处开始
          if(k+1<length && arr[k]<arr[k+1]){//如果左子结点小于右子结点,k指向右子结点
              k++;
          }
          if(arr[k] >temp){//如果子节点大于父节点,将子节点值赋给父节点(不用进行交换)
              arr[i] = arr[k];
              i = k;
          }else{
              break;
          }
      }
      arr[i] = temp;//将temp值放到最终的位置
  }

答案:B

参考链接:https://www.cnblogs.com/chengxiao/p/6129630.html

3. 回文数:判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

leetcode9

class Solution {
    public boolean isPalindrome(int x) {
        // 特殊情况:
        // 如上所述,当 x < 0 时,x 不是回文数。
        // 同样地,如果数字的最后一位是 0,为了使该数字为回文,
        // 则其第一位数字也应该是 0
        // 只有 0 满足这一属性
        if (x < 0 || (x % 10 == 0 && x != 0)) {
            return false;
        }

        int revertedNumber = 0;
        // 反转一半数字
        while (x > revertedNumber) {
            revertedNumber = revertedNumber * 10 + x % 10;
            x /= 10;
        }

        // 当数字长度为奇数时,我们可以通过 revertedNumber/10 去除处于中位的数字。
        // 例如,当输入为 12321 时,在 while 循环的末尾我们可以得到 x = 12,revertedNumber = 123,
        // 由于处于中位的数字不影响回文(它总是与自己相等),所以我们可以简单地将其去除。
        return x == revertedNumber || x == revertedNumber / 10;
    }
}
  • 整数反转的数学方法:
//pop operation:
pop = x % 10;
x /= 10;
//push operation:
temp = rev * 10 + pop;
rev = temp;
4. 六个圆盘的汉诺塔,总的移动次数是( )

Hanoi(n, a, b):将n个盘子从a柱移到b柱。
f(n):n个盘子的汉诺塔的总移动次数。

  • Hanoi(n, a, c) = Hanoi(n-1, a, b) + 1 + Hanoi(n-1, b, c):假设有a、b、c三个柱,要将a上n个盘子移到c,先将a上面n-1个盘子移到b,再将a最下面的盘子移到c,最后将b上的n-1个盘子移到c。
  • n盘子汉诺塔问题变成了移动一个盘子 + 两个n-1盘子汉诺塔问题:
    f ( n ) = f ( n − 1 ) + 1 + f ( n − 1 ) = 2 f ( n − 1 ) + 1 f ( n ) + 1 = 2 ( f ( n − 1 ) + 1 ) f ( n ) + 1 = 2 ( n − 1 ) ( f ( 1 ) + 1 ) f ( n ) + 1 = 2 n f ( n ) = 2 n − 1 f(n) = f(n-1) + 1 + f(n-1) = 2f(n-1) + 1 \\ f(n) + 1 = 2(f(n-1) + 1) \\ f(n) + 1 = 2^{(n-1)} (f(1) + 1) \\ f(n) + 1 = 2^n \\ f(n) = 2^n -1 f(n)=f(n−1)+1+f(n−1)=2f(n−1)+1f(n)+1=2(f(n−1)+1)f(n)+1=2(n−1)(f(1)+1)f(n)+1=2nf(n)=2n−1
    答案:2^6 - 1 = 63
5. 设哈希表长度为11,哈希函数为Hash(key)=key%11。存在关键码{47,7,29,11,9,84,54,20,30},采用二次探测法处理冲突,建立的hash表为( )
  • 平方探测法:以增量序列 1 2 , − 1 2 , 2 2 , − 2 2 , . . . , q 2 , − q 2 1^2, -1^2, 2^2, -2^2, ... , q^2, -q^2 12,−12,22,−22,...,q2,−q2 且 q<=TableSize/2 循环试探下一个存储地址。
  • 一个结论:如果哈希表大小是4k+3的素数(7、11、19),那么只要有空位,就一定能够找的着。
    在这里插入图片描述
    参考地址:https://zhuanlan.zhihu.com/p/34520264
6. 有关希尔排序算法叙述正确的是( )

A.最后一次的步长增量一定为1
B.分割后子序列内部的排序算法是直接插入排序
C.分割后子序列内部的排序算法是直接选择排序
D.希尔排序是稳定排序算法

  • 希尔排序的步骤:
  1. 选择增量gap = length/2为起始,以gap = gap/2的方式缩小增量,此增量序列可表示为{n/2, (n/2)/2 , …, 1};
  2. 通过这个增量将数组元素划分为若干组,分组进行插入排序;
  3. 然后逐步缩小增量,继续分组进行插入排序,直至增量为1。
    在这里插入图片描述
/**
 * 希尔排序 针对有序序列在插入时采用移动法。
 * @param arr
 */
public static void sort1(int []arr){
    //增量gap,并逐步缩小增量
    for(int gap=arr.length/2;gap>0;gap/=2){
        //从第gap个元素,逐个对其所在组进行直接插入排序操作
        for(int i=gap;i<arr.length;i++){
            int j = i;
            int temp = arr[j];
            if(arr[j]<arr[j-gap]){
                while(j-gap>=0 && temp<arr[j-gap]){
                    //移动法
                    arr[j] = arr[j-gap];
                    j-=gap;
                }
                arr[j] = temp;
            }
        }
    }
}

正确答案: A B
参考链接:https://www.cnblogs.com/chengxiao/p/6104371.html

2020年安卓学习笔记目录 一、讲课笔记 安卓学习笔记01:安装集成开发环境Android Studio 安卓学习笔记02:测试安卓开发环境 安卓学习笔记03:安卓应用目录结构 安卓学习笔记04:安卓平台架构 安卓学习笔记05:Activity概述 安卓学习笔记06:Activity生命周期与启动模式 安卓学习笔记07:事件处理、窗口跳转与传递数据 安卓学习笔记08:线性布局 安卓学习笔记09:帧式布局 安卓学习笔记10:相对布局 安卓学习笔记11:网格布局 安卓学习笔记12:安卓按键事件 安卓学习笔记13:安卓触摸事件 安卓学习笔 阅读详情

相关推荐

2020年Java讲课笔记目录

1、Java讲课笔记01:搭建Java开发环境 2、Java讲课笔记02:Java集成开发环境 3、Java讲课笔记03:Java基本语法

howard2005的专栏 1万+

每日一练20210605

===================================================================== 使用堆排序方法排序(45,78,57,25,41,89),初始堆为( ) 2021-06-05 22:53:50 A、 78,45,57,25,41,89 B、 89,78,57,25,41,45 C、 89,78,25,45,41,57 D、 89,45,78,41,57,25 回答正确正确答案:B 解析: 从叶子节点开始交换各节点值的位置...

upon120的博客 771

汉诺塔问题并计算总次数

汉诺塔问题并计算总次数--C++源代码,本资源不仅给出了源代码,还进行了结果分析与比较!

今日算法笔试练习【5】(08-06)(历年笔试题)

一 、爱奇艺2019秋招算法方向笔试题(A) 1.使用堆排序方法排序(45,78,57,25,41,89),初始堆为( ) 首先根据现有的序列进行二叉树的构建得到: 然后将这棵二叉树转化为最大堆积树(树根最大,从而每次删除树根,就得到了一个降序排序的序列。) 第一次得到的最大堆积树(初始堆): 则结果是89,78,57,25,41,45 2.6个圆盘的汉诺塔,总...

Jasminexjf的博客 6257

构建自己的哨兵数据集(以sentinel-1为例,使用SNAP软件)

通过欧洲航天官网获取哨兵数据的产品,通过SNAP软件进一步得到SAR图像(以导出图片为例)

xiaoxTai的博客 6183

告别BAPI!深入SAP S/4HANA BP框架:cl_md_bp_maintain维护客户主数据的正确姿势与性能优化

本文深入解析SAP S/4HANA中cl_md_bp_maintain框架的高效实践与架构设计,对比传统BAPI方式,展示其在业务伙伴(BP)主数据维护中的性能优势与现代化特性。通过详细代码示例和性能测试数据,揭示如何利用该框架实现批量处理、集中校验及智能错误恢复,助力企业从ECC向S/4HANA平滑迁移。

weixin_30596735的博客 358

9.26java考试

1、使用堆排序方法排序(45,78,57,25,41,89),初始堆为( ) A、78,45,57,25,41,89 B、89,78,57,25,41,45 C、89,78,25,45,41,57 D、89,45,78,41,57,25 第一层: 45 第二层: 78 57 第三层:25 41 89 按照选项应该是递减的排序,从89开始上移,完成max he...

weixin_44031266的博客 1359

Frida实战:高效dump Android内存中的so文件与修复技巧

本文详细介绍了使用Frida工具dump Android内存中已解密so文件的实战技巧。针对加固应用静态分析失效的痛点,文章提供了从环境搭建、使用frida_dump脚本自动化抓取内存数据,到利用SoFixer工具修复ELF文件结构的完整流程,帮助逆向分析人员高效获取可分析的so文件。

tt34567的博客 528

重点算法排序之堆排序(下篇)

我们本篇文章来详细讲述以下堆排序。同时给大家总结出各个排序的时间复杂度、空间复杂度、是否稳定。堆排序的主要内容有:最大堆(大顶堆)、最小堆(小顶堆)、通过孩子找父亲、通过父亲找孩子、向下调整算法建堆。下面我会给大家一一介绍。堆一般指的是二叉堆,顾名思义,二叉堆是完全二叉树或者近似完全二叉树。堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质。

weixin_67596609的博客 1603

【正点原子I.MX6U-MINI移植篇】Ubuntu-base根文件系统移植构建过程详解(四)

能不能在ARM板上运行Ubuntu呢?答案肯定是可以的,Ubuntu是Linux系统的一种,可以简单的将Ubuntu理解为一个根文件系统,和我们用busybox、buildroot制作的根文件系统一样。因此移植Ubuntu也就是将Ubuntu根文件系统移植到我们的开发板上。

果果小师弟的博客 3769

中国 it 集成商 主要有哪些 主要做什么工作

既要懂技术(云计算/AI),又要吃透行业(金融/政务)。:用国产化方案(麒麟OS+达梦数据库)替换Oracle/Windows。:如为银行搭建数据中心(采购华为服务器+思科交换机)。:数据中心监控、故障处理(如华胜天成服务国家电网)。:核心交易系统(如中科软为保险公司开发精算平台)。:智慧城市(如太极股份承建“一网通办”政务平台)。:HIS医院信息系统(如东华软件的电子病历系统)。:硬件透明化(如服务器价格战)压缩集成毛利。:工厂设备联网(新华三的工业互联网平台)。

hxsln11的博客 3038

算法--递归

第十一章 31题 给出 2*n + 1 个的数字,除其中一个数字之外其他每个数字均出现两次,找到这个数字。 样例: 给出 [1,2,2,1,3,4,3],返回 4。 // An highlighted block var foo = 'bar'; ...

qq_turn 886

基于PyQt5和OpenCV的传统图像分割应用UI程序

主要功能包括:加载和显示图像应用多种图像分割算法调整算法参数保存处理结果。

Henry的博客 473

剑指offer刷题笔记

最近LeetCode上的《剑指offer》的题刷的差不多了,只剩几道无聊的题了。现在把做题过程中的记录放在这里,作为将来查看的笔记,也同时欢迎大家指出其中的不当之处(QQ)。虽然博主现在仍然没有拿到offer,但应该正如二师兄所言“放屁添风”,相信也是有些许的参考意义的。 Contens04 二维数组中的查找我的解法官方给出的线性解法05 替换空格我的解法官方解法06 从尾到头打印链表我的解法官方解法07 重建二叉树我的解法官方递归解法官方迭代解法09 用两个栈实现队列我的解法网友的解法10 青蛙跳台阶问题

仰起脸笑得像满月 1134

【深度学习】Progressive Distillation for Fast Sampling of Diffusion Models

这种方法通过迭代地将一个需要较多步骤的模型(称为教师模型)蒸馏成一个需要较少步骤的学生模型,每次迭代都将采样步骤减半,直到达到所需的采样步骤数量。通过渐进式蒸馏,论文将原始需要8192步采样的模型成功蒸馏为只需4步采样就能取得接近的生成质量的新模型,大幅提高了扩散模型的推理效率。这篇论文提出了一种"渐进式蒸馏"(Progressive Distillation)的方法,来大幅降低用于生成对抗网络(GAN)的扩散模型(Diffusion Model)在推理阶段的采样步数,从而提高其推理效率。

q742971636的博客 1788

《用 AI 赋能医药科研创新》目录(持续更新)

本专栏旨在指导医学科研和药物研发人员运用AI技术提升研究效率。内容包括:利用AI分析文献、识别研究热点、自动生成研究草稿;在新药研发中,通过AI优化临床方案设计、受试者筛选等环节;介绍AI理论基础如大语言模型、提示词工程学及智能体技术发展历程。专栏采用5000-9000字的长文形式,系统讲解AI在医药研发各环节的应用方法,帮助研究者缩短周期、降低成本,推动医药研发进入智能化新阶段。

MD Code 501

2020-06-02 模电 笔记

一 常见-模电符号-中英文解释一 常见-模电符号-中英文解释 缩写 全称 中文 VD diode 二极管 VT triode 三极管 UZ 稳定电压 UD Positive guide voltage 正向导通电压 UREF Reference voltage 基准电压

石灰粉 5856

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

buu刷题笔记--2020年第31周

前几周搞 pwn 有点想吐,搞搞 re 吧 reverse1 1. PE文件分析 用的是 Exeinfo PE 这个软件,吾爱上有分享,爱盘也有收录。 这一步有点类似 pwn 查看程序的版本、保护情况: 64 位的程序。 2. 运行程序获取信息 题目最好在 命令行 中运行,避免运行结束前的提示字符没来得及看就关闭了。 3. x64dbg 打开 也可以用 OD 打开,因为OllyDbg 官方中文,我用这个入门吧。 用字符串定位程序关键位置,直接点面板的字符串,查找结果不全面的,需要在代码处右键选查找全.

SkYe's Blog 400

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

2020-06-26

开关电源大潘笔记视频课程

qq_48251509的博客 96

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

macOS 26 Tahoe

一、设计革新:Liquid Glass(液态玻璃)🎨 二、核心功能升级⚡ 1、 Spotlight 智能命令中心 2、原生电话应用 3、实时活动(Live Activities) 4、AI 与自动化 5、游戏生态 三、跨设备体验🔗 四、兼容性与终结支持⚠️ 五、发布时间线 📅 相关资料链接

AI工程化、开源分享、文档翻译、代码笔记 2318

CS61a-2020fall学习笔记

此项目含有我对cs61a2020秋季学期大部分lab,discussion,project和homework的解答。从2021/06/22-2021/11/26,暑假太贪玩了,导致一共用时5个月才完成。 课程主页 github项目地址 使用ok时为了不提交邮箱,可在命令行后面加上–local 项目中未完成的题目如下: disc04 1.2 2.3 dic05 2.2 lab09 Q3 Q5 lab14 Q3 Q4 Q6 Q10 disc14 Q2.2 Q6.1 Q8.1 Q8.2 欢迎大家对我进行指正或者与

weixin_43405649的博客 2773

2020/2/26学习笔记-day06

java-day6 早上 第一节课 回顾垃圾回收器和类加载器 类加载器 JVM中一段代码 代码执行后,可以把硬盘上的class文件加载到内存 ​ 垃圾回收器 JVM中一段代码 代码执行后,可以把不再使用的内存空间给释放掉 java反向解析 对象 package com.zzb.day6; ​ import java.util.Date; ​ public class...

277

2020.ailx10年终总结

这就又一年了,先把梦想放一放,咱们来谈钱,略有遗憾,依然没能赚到2000块钱~一把闲愁付酒杯,芙蓉江上倚楼台。扁舟送客归何处,惆怅东风万里来。又是一番新雨后,杜鹃声里夕阳馀。故园芳草今何在,多少英雄泪满袪。2020年知乎live2020年收益2020年场次2020年累计场次3月607.87234月538.79145月512.46376月535.024117月535.62138月560.662159...

ailx10 525

lenovo服务器换系统重装系统_Lenovo 联想 小新Pro13 2020锐龙版笔记本电脑屏幕测评 「Soomal」...

Lenovo 联想 小新Pro13 2020锐龙版笔记本电脑Lenovo 联想 小新Pro13 2020锐龙版笔记本电脑如果说Zen2架构的桌面版锐龙、线程撕裂者和宵龙服务器只能对英特尔造成一点象征性的威胁,那么今年AMD发布的7nm移动型锐龙处理器可谓是直接在太岁脸上动土了。从第二季度开始,各品牌锐龙4000系列移动处理器的笔记本电脑陆续上市,市场开始变得热闹起来。例如联想这款新版的小新Pro锐...

weixin_31703753的博客 1014

CTF刷题——BUUCTF杂项题

BUUCTF平台中的misc方向做题记录

xingxingk88的博客 816

风二西CTF流量题大集合-刷题笔记|NSSCTF流量题(2)

提交发现,07ab403ab740c1540c378b0f5aaa4087正确值。

zerorzeror的博客 1858
上一篇: 二叉树
下一篇: 自然语言处理实践Task1
只爱写代码
博客等级 码龄9年 73粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值