s.end()); bitset<32> y(s); uint32_t res = y.to_ulong(); return res; } }; 2 while (n) { n &= n - 1; ret++; } return ret; } }; 4 2的幂 分析:n如果是2的幂,则n是正整数并且n的二进制表示中只有1个1。
前言 本日记为个人的刷题学习日记,内容非原创,仅为自己复习知识时,能够看得懂自己写的CV的代码,快速理解题意。另外,力扣官方的题解很好用,三叶姐nb!!!!!
=NULL,*nl2=NULL; ifstream nf1("nf1.txt"); ifstream nf2("nf2.txt"); if(! >n2) { cout<<n2<<" "; nl2= new List(n2,nl2); } cout<<endl; // while (nl2 ! ] 1,2,3 0,0,1,1,2,2,3,3 0,1,2,3 代码: //删除数据中重复数字 #include <iostream> using namespace std; #include <vector ] val=3 返回剩余长度2 [0,1,2,2,3,0,4,2]val=2 返回剩余长度5 代码: #include <iostream> using namespace std; #include
BUUCTF 刷题笔记——PWN 2 not_the_same_3dsctf_2016 先验文件,本题文件为 32 为可执行文件,保护约等于没开。 也就是说上一题费好大力气使用 mprotect() 函数来修改权限来写入 shellcode,这题直接就给了这么一块空间可供写入并执行 shellcode。 经过测试,在 Ubuntu 20 以后版本中,未开启 NX 保护的程序在实际运行时并不会获得执行权限,所以题给文件在这些环境下将无法通过 ret2shellcode 完成。 += p32(stack_addr - 0x3a + 0x1e) + shellcode io.sendline(payload) io.interactive() 后记 本篇博客作为 PWN 刷题的第二篇 ,预计字数一万以内,预计工期一星期以内,然而事实上……本篇博客作为 PWN 刷题的第二篇,实际字数近两万,实际工期近两周,综合消耗超过了第一篇刚入门时。
(1)两点间的距离 # 两点间的距离 #tip1:不使用math库 x1,y1=map(float,input().split()) x2,y2=map(float,input().split()) D = ((x2 - x1)**2 + (y2 - y1)**2)**0.5 print("%.4f"%D) #tip2: 使用math库 from math import sqrt x1,y1 = map(float,input().split()) x2,y2 = map(float,input().split()) D = sqrt((x2 - x1)**2 + (y2 - y1)**2) print ("%.4f"%D) (2)钞票 -顺序结构 N = int(input()) print(N) print("%d nota(s) de R$ 100,00 "%(N // 100)) N %= 100 "%(N // 2)) N %= 2 print("%d nota(s) de R$ 1,00 "%(N // 1)) (3)差 #差-顺序结构 A = int(input()) B = int(input
菜鸟刷题Day2 一.判定是否为字符重排:字符重排 描述 给定两个由小写字母组成的字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。 ---- 解题思路: 这题思路与昨天最后两道类似,可以给定两个数组,将字符的内容加载到数组中,最后判断两个数组内容是否相同即可。 =strlen(s1); int sz2=strlen(s2); if(sz1! =sz2) //长度不相同肯定不一样 return false; while(*s1!='\0'&&*s2! ='\0') { arr1[*s1]+=1; arr2[*s2]+=1; s1++; s2++; } //数据录入完毕开始判断呗 for(int i=0;i<256;i++) {
BUUCTF 刷题笔记——Web 2 [BJDCTF2020]Easy MD5 打开靶机,页面中仅有一个输入框,提交一个数据发现其将数据使用 GET 方法传给变量 password。 param1[]=1¶m2[]=2 [HCTF 2018]admin 打开靶机,网页包含了登录与注册两个功能,LOGO 处可以点击,但是会返回 404。 通过如下两个 payload 的反应可判断字段数为 2。 ?inject=1'order by 2--+ ? inject=0'+and+extractvalue(1%2Cconcat('~+'%2Cdatabase()%2C'+~'))--+ 查询结果如下,可知当前使用的数据库名为 supersqli。 既然程序打不开,那就尝试浏览器直接访问一下,发现可以直接下载,但是里面仅仅如下: 图片 那其实进行到这里这题就被我做死了,后续就无从下手了,参考其他师傅的题解后发现下载文件的正确姿势是改成使用 POST
示例 2: 输入: s = "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
BUUCTF 刷题笔记——Basic 2 BUU BRUTE 1 启动靶机 打开只有一个简单的登录界面 图片 研究页面 随便输入一个账户和密码测试一下: 图片 提示用户名错误,并且用户名和密码均在 pleaseget=1 而通过 POST 方法传递的变量则需要通过 HackBar 工具来完成,首先构造 payload: pleasepost=2&md51[]=1&md52[]=2&obj=O:3: "BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;} 或者是: pleasepost=2&md51=s878926199a&md52=s1885207154a& obj=O:3:"BUU":2:{s:7:"correct";s:0:"";s:5:"input";R:2;} 浏览器 F12 选择 HackBar,在 URL 后加入 GET 部分数据,在 Post 数字为 2 时浏览器能够正常回显,说明当前 SQL 语句至少查询了两列数据。 图片 当数字修改为 2 时浏览器无回显,说明当前 SQL 语句仅查询了两列数据。
大家好,今天给大家介绍一份 Github 上万 star 的刷题笔记,看完,直接秒杀大部分中等难度 Leetcode 题目 作者是一位谷歌工程师。 他在美国卡内基梅隆大学攻读硕士学位时,为了准备实习秋招,他从夏天开始整理某 code 上的题目,几个月的时间,刷了几百道题目。 入职前,闲暇的时候,他突然想到,自己刷了那么多题,而且对很多题目的解法有着总结,为何不把这些题目归纳总结一些,做成一个便于后来者阅读学习的电子书呢? 引用他的话来说: 本书分为算法和数据结构两大部分,又细分了十五个章节,详细讲解了刷题时常用的技巧。我把题目精简到了101道,一是呼应了本书的标题,二是不想让读者阅读和练习时间过长。 [image.png] 为了方便读者,我已经将开源电子书下载后上传到百度云盘: 链接: https://pan.baidu.com/s/1nghTi7EBWF2hfufox3ZbTw 提取码: gdnu
可以说,你如果能把这些题做到游刃有余,哪么一般大公司面试的算法题,比如手撕红黑树啥的,真的是手拿把攥。 因为它是个网站的缘故,我们刷题过程中避免不了要打开浏览器,可是如果你想在上班过程中摸鱼的话,打开浏览器光明正大刷有的时候可能不太好,哪怎么办呢? 最近发现个上班刷题摸鱼神器VS Code刷题插件——vscode-leetcode,接下来我就推荐给大家,通过它只需要在VSCode中你就可以完成登录解题等一系列步骤而不需要开个浏览器。 ? 综上,是不是感觉刷题的欲望都高了呢?欢迎留言来讨论哈。 参考资料 [1] 源码: https://github.com/jdneo/vscode-leetcode/blob/master/docs/README_zh-CN.md [2] 安装链接: https
输入:(2 -> 4 -> 3) + (5 -> 6 -> 4) 输出:7 -> 0 -> 8 原因:342 + 465 = 807 分析:看到结果是逆序输出的,刚开始思路是将两个链表先逆序过来,但这样太麻烦了 =0的判断,测试用例[5] [5] 2.是判空问题, l1 = l1!=null&&l1.next!=null? =null||l2!=null||sub!=0){ int one = l1==null?0:l1.val; int two = l2==null? l1.next:null; l2 = l2!=null&&l2.next!=null? l2.next:null; } return beginNode.next; } }
两数相加 我们来看看题目,,,, 往往困难的题只需要 简单的叙述。 好像只用找到两个数,整合成一个链表就可以。 = NULL) { num2 += (l2->val) * a; l2 = l2->next; a *= 10; } //求和 long l1 = l1->next; } //l2 为真则把值赋值在t上 if(l2) { t += l2->val; l2 = l2->next; } //创建节点 cur->next = ( Listnode *)malloc(sizeof(Listnode)); 这道题考察了咱们对循环的认识,通过循环把加法本质实现。进而完成题目! 谢谢阅读Thanks♪(・ω・)ノ 下一篇文章见!!!!!!
例如,给定一个列表 temperatures = [73, 74, 75, 71, 69, 72, 76, 73], 你的输出应该是 [1, 1, 4, 2, 1, 1, 0, 0]。 2、实现代码 public int[] dailyTemperatures(int[] T) { int[] days = new int[T.length]; 2、实现代码 public int[] dailyTemperatures(int[] T) { int len = T.length; int[] ans = new int[len];//存放最后的结果,比当前温度更高的距离 for (int i = len-2 ; i >= 0 ; i--){ for (int j
刷面试题是一种很好的感知职场需求、发现自身知识缺陷并不断提升自我的过程。 2. python是如何进行内存管理的? python引用了一个内存池(memory pool)机制,即Pymalloc机制(malloc:n.分配内存),用于管理对小块内存的申请和释放。
目录 第1题:搜索插入位置 第2题:外观数组 第3题:最大子序和 第4题:最后一个单词的长度 第5题:加一 第6题:二进制求和 第7题:求平方根 第8题:爬楼梯 第9题:删除排序链表中的重复元素 第10 题:合并两个有序数组 ---- 力扣(LeetCode)定期刷题,每期10道题,业务繁重的同志可以看看我分享的思路,不是最高效解决方案,只求互相提升。 num=j; break; } } } return num; } ---- 第2题 回答(C语言): void merge(int* nums1, int nums1Size, int m, int* nums2, int nums2Size, int n){ int p = nums2[n--] : nums1[m--]; } while (n >= 0) { nums1[--p] = nums2[n--]; } }
虽然刷题一直饱受诟病,不过不可否认刷题确实能锻炼我们的编程能力,相信每个认真刷题的人都会有体会。 LeetCode收录了许多互联网公司的算法题目,被称为刷题神器,我虽然早有耳闻,不过却一直没有上面玩过。 2、复习以前学过的编程语言,LeetCode支持几乎所有主流编程语言,大家可以用不同语言来做题。 因此刷题之外,还需要记住每种算法实现的时间复杂度和空间复杂度。最常用的是Big O notation。 一般情况下,人们更关注时间复杂度,往往希望找到比 O( n^2 ) 快的算法,在数据量比较大的情况下,算法时间复杂度最好是O(logn)或者O(n)。
1 int n=0; 2 scanf("%d",&n); //13.141 【2】这里虽然输入的是一个浮点数,但是只取整数部分。 【3】3.156e7 表示的是3.156*10的7次方。
本文章为C语言入门必刷题,每道题都包含了C语言的基础知识点,值得我们去经常复习,并牢记在心的一些题目!! ---- 此次为入门必刷题2 ---- 前言 大佬就可以撤退了!! 本次为C语言入门刷题!重在扎实基础,温习学过的基础知识!!! 夯实基础,走得更远!! ---- 一、冒泡排序的重要性! (j<=2*n-2*i)。 第二部分,第一个循环控制行,第二个循环控制输出! tpId=107&tqId=33344&rp=1&ru=/exam/oj/ta&qru=/exam/oj/ta&sourceUrl=%2Fexam%2Foj%2Fta%3Fpage%3D2%26tpId 那么这期的C语言入门刷题基础知识点就到这里啦!! 是不是觉得不够,内容太少? 那么就期待下期我们再见吧!!
= null && l2 ! = null) { temp = l2; temp2 = l2; } if (temp2 ! = 0 && temp2 ! listNode; } return head.next; //这里head存的是头节点,因此要返回next } } 总结 考研结束了,想找点事干,刷的第二道 leetcode题,写的有点乱,大家如果有问题欢迎在下面公众号联系我,溜了溜了