算法之法
为算法而算法
Rico-Coding
资本要靠自己积累 技术需要自己磨炼
展开
-
Stack
Stack特性:LIFO( Last In First out)适用于需要记录之前的状态,必要的时候可以回到之前的状态,或者利用之前的值不像array,不能用 index访问,只能每次拿栈顶元素题外话:动态规划 Dynamic ProgrammingDP:记录之前所有状态,随时可能访问任何一个子问题,所以通常用Array或者Hash Table,而且不会回到之前的状态,只会利用之前的值Stack:每次只需要栈顶元素,并且每个状态只会被用O(1)次Stack,类似递归调用,保存历史状态,但原创 2020-12-26 09:42:49 · 235 阅读 · 0 评论 -
链表的问题
链表数组:内存里连续的数组-链表: 内存里面不一定连续的数组对于链表的问题,60%主要是使用双指针:tips:双指针在array主要是用index 在单链表中是pointer1.比如查找链表的中点定义一个快指针和一个慢指针快指针每次走两步慢指针每次走一步2.找倒数第k个节点快指针先走k个位置然后慢指针和快指针和慢指针一起每次向前走一步递归:解决需要从后往前的链表问题1.链表的反向:...原创 2020-12-25 11:10:39 · 101 阅读 · 0 评论 -
二分搜索法
二分搜索法一种针对有序区间内的O(logn)二分搜索的两大基本原则每次都要缩减区域每次都不能排除潜在答案三大模板原创 2020-12-24 14:26:12 · 63 阅读 · 0 评论 -
双指针
双指针(Array)同向指针通用步骤:反向指针实战Reverse String:反转字符串 334(反向指针) public char[] reverstring(char[] str){ //初始化 int i=0,j=str.lerngth-1; while(i<j){ char tmp=str[j]; str[i]=str[j]; str[j]=tmp; i++; j--; } }-26.去除带重复的元素(同向指针)public int d原创 2020-12-23 16:53:55 · 58 阅读 · 0 评论