文件名称:leetcode叫数-Algorithm-Leetcode:算法-Leetcode
文件大小:118KB
文件格式:ZIP
更新时间:2024-07-20 10:07:55
系统开源
leetcode叫数 Algorithm-Leetcode Two Pointers 解决双指针问题三种常用思想 左右指针:需要两个指针,一个指向开头,一个指向末尾,然后向中间遍历,直到满足条件或者两个指针相遇 快慢指针:需要两个指针,开始都指向开头,根据条件不同,快指针走得快,慢指针走的慢,直到满足条件或者快指针走到结尾 后序指针:常规指针操作是从前向后便利,对于合并和替换类型题,防止之前的数据被覆盖,双指针需从后向前便利 碰撞指针 一般都是排好序的数组或链表,否则无序的话这两个指针的位置也没有什么意义。 特别注意两个指针的循环条件在循环体中的变化,小心右指针跑到左指针左边去了。 常用来解决的问题有 二分查找问题 n数之和问题:比如两数之和问题, 先对数组排序然后左右指针找到满足条件的两个数。 如果是三数问题就转化为一个数和另外两个数的两数问题。以此类推。 快慢指针 类似于龟兔赛跑,两个链表上的指针从同一节点出发,其中一个指针前进速度是另一个指针的两倍。利用快慢指针可以用来解决某些算法问题,比如 计算链表的中点:快慢指针从头节点出发,每轮迭代中,快指针向前移动两个节点,慢指针向前移动
【文件预览】:
Algorithm-Leetcode-master
----Two Pointer.md(16B)
----DFS:BFS.md(6KB)
----src()
--------Dynamic-Programming()
--------Amazon-Intern()
--------ticketsell.java(637B)
--------DP()
--------testticketsell.java(488B)
--------Two-Pointers()
--------Sliding-Window()
--------Solution.java(925B)
----img()
--------0-1 Knapsack.png(13KB)
----Linked List.md(15B)
----OA2.md(22KB)
----.idea()
--------misc.xml(271B)
--------uiDesigner.xml(9KB)
--------modules.xml(276B)
--------.gitignore(38B)
--------vcs.xml(167B)
----Dynamic Programming.md(10KB)
----README.md(8KB)
----Algorithm-Leetcode.iml(781B)
----Binary Search.md(2KB)
----out()
--------production()