太阳照常升起 
  • 首页
  • 归档
  • 分类
  • 标签
  •     

队列简单总结

239. 滑动窗口最大值 public class MyQueue{ //构建自己的队列及相关方法,add,poll,peek Deque<Integer> deque=new LinkedList<>(); void add(int val) { while(!deque.isEmpty()&&val>deque.getLast()) {//保证队列按照从大到小的顺序, deque.removeLast(); } deque.add(val);/
 2021-06-18   leetcode    队列  单调队列 

栈总结

20.有效的括号 一言以概之,由于栈结构的特殊性,非常适合用来做匹配、对称类问题。 public boolean isValid(String s) { Deque<Character> deque=new LinkedList<>(); for(int i=0;i<s.length();i++) { char ch=s.charAt(i); if(ch=='{') { deque.push('}'); } els
 2021-06-18   leetcode    栈 

cve-2019-18634记录

一、 环境配置ubuntu 18.04 virtualbox虚拟机sudo 1.8.25 版本 二、漏洞概述CVE-2019-18634是一个sudo 提权漏洞,影响sudo版本为[1.7.1,1.8.31)。具体地,如果pwfeedback配置选项在/etc/sudoers被启用,攻击者可以利用一个bss段溢出漏洞来获取root权限。 pwfeedback配置选项在多数的Linux系统中都不是默认选项,但是在Linux Mint操作系统和Elementary OS上是默认开启的,因此漏洞的危害比较大,攻击者需要向getln传递一个超长字符串来触发攻击。 三、漏洞点代码 四、漏洞分析如果不是在
 2021-05-17   二进制安全    cve 

哈希之基本数据结构使用

242.有效的字母异位词普通版 public boolean isanagram(String s,String t) { if(s.length()!=t.length()) { return false; } int[] arr=new int[26]; for(int i=0;i<s.length();i++) { arr[s.charAt(i)-'a']++;
 2021-05-11   leetcode    哈希  快慢指针 

某数之和集锦

1.两数之和 public int[] calsum1(int[] nums,int tar) { HashMap<Integer,Integer>map1=new HashMap<>(); for(int i=0;i<nums.length;i++) { if(map1.containsKey(tar-nums[i])) { int[] ans=new int[] {map1.get(tar-nums[i]),i}; return ans; } ma
 2021-05-11   leetcode    双指针  哈希 

哈希法系列1

总结一下,当我们遇到了要快速判断一个元素是否出现集合里的时候,就要考虑哈希法。但是哈希法也是牺牲了空间换取了时间,因为我们要使用额外的数组,set或者是map来存放数据,才能实现快速的查找。遇到需要判断一个元素是否出现过的场景也应该第一时间想到哈希法!哈希表是根据关键码的值而直接进行访问的数据结构。而一般哈希表都是用来快速判断一个元素是否出现在集合里。哈希函数的功能就是将某些内容映射为哈希表上的索引,然后就可以通过查询索引来快速查看这些内容了。常见的三种哈希结构1.数组2.set(集合)3.map(映射) 242.有效的字母异位词 普通版public boolean isanagram(Str
 2021-05-09   leetcode    哈希  快慢指针 

链表之基本操作

public class ListNode{ int val; ListNode next; ListNode(int x){ val=x; } /*ListNode(){} ListNode(int val,ListNode next){ this.val=val; this.next=next; }*/ } class MyLinkedList{ int size;//来记录链表长度,每次调用增加节点或者减少节点时修改其值 ListNode head;//设置虚拟节点
 2021-05-08   leetcode    链表 

链表之环

public ListNode detectCycle(ListNode head) { ListNode slow=head; ListNode fast=head;//开始时快慢指针都指向头节点 while(true) { if(fast==null||fast.next==null)//一开始错是因为少了这个判断,这个判断是检查这个链表是否没有环。如果没有环,那么fast会走到null节点,否则会困在环里面永世历劫 return null; slow=slow.next; fast=fast.ne
 2021-05-08   leetcode    链表  双指针 

链表之移除元素

203.移除链表元素 解法1:虚拟节点法 ListNode virtualnode=new ListNode(val-1); virtualnode.next=head;//设置虚拟节点,为本题关键,为了处理如果头节点需要删除的情况 ListNode tmp=virtualnode; while(tmp.next!=null) { if(tmp.next.val==val) {//一旦下一个节点val相等 tmp.next=tmp.next.next;//移除下一个节点
 2021-05-06   leetcode    链表  双指针  虚拟节点 

回文链表

第一种思路:利用栈public boolean ispalindrome(ListNode head) { Stack<ListNode> stack=new Stack<>(); ListNode tmp=head; while(head!=null) {. //⚠️,不能写成head.next!=null stack.push(head); head=head.next; } while(tmp!=null) {.
 2021-05-06   leetcode    链表  栈  双指针 
1234

搜索

Hexo Fluid