java">classMedianFinder{List<Integer> list =newArrayList<>();publicMedianFinder(){}publicvoidaddNum(int num){int i = list.size();while(i >0){if(num < list.get(i-1)){i-=1;}else{break;}}if(i == list.size()){list.add(num);}else{list.add(i, num);}}publicdoublefindMedian(){int l = list.size();if(l %2==1){return list.get(l/2);}return(list.get(l/2)+ list.get(l/2-1))/2.0D;}}/*** Your MedianFinder object will be instantiated and called as such:* MedianFinder obj = new MedianFinder();* obj.addNum(num);* double param_2 = obj.findMedian();*/
最大最小堆
java">classMedianFinder{PriorityQueue<Integer> maxHeap =newPriorityQueue<Integer>((a, b)-> b-a);PriorityQueue<Integer> minHeap =newPriorityQueue<Integer>((a, b)-> a-b);publicMedianFinder(){}publicvoidaddNum(int num){if(maxHeap.isEmpty()|| num < maxHeap.peek()){maxHeap.offer(num);if(minHeap.size()+1< maxHeap.size()){minHeap.offer(maxHeap.poll());}}else{minHeap.offer(num);if(minHeap.size()> maxHeap.size()){maxHeap.offer(minHeap.poll());}}}publicdoublefindMedian(){if(maxHeap.size()> minHeap.size()){return maxHeap.peek();}return(minHeap.peek()+ maxHeap.peek())/2.0D;}}/*** Your MedianFinder object will be instantiated and called as such:* MedianFinder obj = new MedianFinder();* obj.addNum(num);* double param_2 = obj.findMedian();*/
vim的介绍
vi 和 vim 命令是linux中强⼤的⽂本编辑器, 由于Linux系统⼀切皆⽂件,⽽配置⼀个服务就是在修改其配置⽂件的参数。 vim 编辑器是运维⼯程师必须掌握的⼀个⼯具, 没有它很多⼯作都⽆法完成。 其中有vi和vim两种
vi和vim的区别
Vim是Vi的升级版本&#…
1.ezmd5
根据题目提示 我们知道应该是要上传两张md5值相同的图片 根据原文链接:cryptanalysis - Are there two known strings which have the same MD5 hash value? - Cryptography Stack Exchange
把保存下来的图片上传一下
得到flag 2.ezhttp
根据原文链接&…