- 博客(8)
- 收藏
- 关注
原创 算法--摩尔投票
摩尔投票就是不同国家打仗,每次打仗都两败俱伤。不管是其他国家对战,还是其他所有国家都和拥有超过士兵总数一半的国家对战。拥有超过士兵总数一半的国家对战一定是最后的胜者。 摩尔投票用于选出在数组中出现次数大于⌊ n/2 ⌋的元素。 设置一个候选人和一个计数器count。遍历数组,每次遇到和候选人一样的值则count + 1,否 则count - 1.当count == 0 时替换候选人,计数器从新机票。最后剩下的就是我们所求的众数。 169. 多数元素 给定一个大小为n的数组,找到其中的多数元...
2021-06-24 17:07:34
125
原创 算法---位运算
异或的特性 x^x=0 交换律 a^b=b^a 结合律 a^(b^c)=(a^b)^c 交换律和结合律类似加法 利用x^x=0找不同 找只出现一次的,找丢失的一个,找多出来的一个, 136. 只出现一次的数字 给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 说明: 你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗? 示例 1: 输入: [2,2,1] 输出: 1 示例2: 输入: [4,1,2,1,2] ...
2021-04-17 20:46:26
213
原创 数据库
Mysql事务日志undolog和redolog https://www.cnblogs.com/f-ck-need-u/p/9010872.html undo log有两个作用:提供回滚和多个行版本控制(MVCC)。如果因为某些原因导致事务失败或回滚了,可以借助该undo进行回滚。有时候应用到行版本控制的时候,也是通过undo log来实现的:当读取的某一行被其他事务锁定时,它可以从undo log中分析出该行记录以前的数据是什么,从而提供该行版本信息,让用户实现非锁定一致性读取。 undo log和
2021-03-16 00:11:34
166
原创 算法----动态规划
背包问题 01背包 每个元素都有两种选择,把O(2^n)的问题转化为O(n),可以看作是对回溯的一种简化。 416. 分割等和子集 给定一个只包含正整数的非空数组。是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。 输入: [1, 5, 11, 5] 输出: true 解释: 数组可以分割成 [1, 5, 5] 和 [11]. class Solution { public boolean canPartition(int[] nums) { //dp[
2021-03-15 10:33:34
284
原创 算法----二分查找
两个模板 时间复杂度 O(logn) 第一个满足某条件(大于等于target)的元素 while(left<right) { int mid=left+(right-left)/2; if(条件成立) //mid处条件成立,第一个满足条件的元素位置<=mid,[mid+1,right]内元素虽然满足条件但不是第一个故排除 right=mid; else //mid处条件不成立 意味着[left,mid]内的...
2021-03-14 16:47:13
331
原创 算法---栈和队列
java栈和队列语法基础 java中的栈和队列的实现用双端队列Deque Deque deque = new LinkedList<type>() #用作队列 deque.addLast(e); deque.removeFirst(e); deque.getFirst(e); #用作栈 deque.addFirst(e); deque.removeFirst(e); deque.getFirst(e);] #deque的栈方法 deque.push(e); //addFirst deq
2021-03-14 16:47:02
181
原创 算法--双指针
双指针 N数之和/差 Array.sort(xxx); while(终止条件 对撞指针为head<tail) num[head]+num[tail]<target head++ num[head]+num[tail]>target tail-- ==target head++;tail-- 要找到所有满足感条件的组合就不返回继续移动指针 使用对撞的双指针,一个指向首一个指向尾,不断向中间逼近,先把数组i排好序O(nlogn),再根据和目标值的关系移动首尾指针,在一个for循环下
2021-03-07 23:06:23
464
原创 算法复习
STL 优先队列 priority_queue<int,vector,cmp1>que1;//最小值优先 priority_queue<int,vector,cmp2>que2;//最大值优先 priority_queue<int,vector,greater >que3;//注意“>>”会被认为错误, priority_queue<int...
2020-01-29 13:54:46
239
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人