auto commit
This commit is contained in:
parent
766936b4e1
commit
1c3ba6c30b
BIN
docs/notes/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif
Normal file
BIN
docs/notes/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
docs/notes/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif
Normal file
BIN
docs/notes/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
BIN
docs/notes/pics/_u66FF_u6362_u7A7A_u683C.gif
Normal file
BIN
docs/notes/pics/_u66FF_u6362_u7A7A_u683C.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
|
@ -110,14 +110,13 @@ Output:
|
|||
|
||||
## 解题思路
|
||||
|
||||
要求复杂度为 O(N) + O(1),也就是时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。
|
||||
要求是时间复杂度 O(N),空间复杂度 O(1)。因此不能使用排序的方法,也不能使用额外的标记数组。
|
||||
|
||||
对于这种数组元素在 [0, n-1] 范围内的问题,可以将值为 i 的元素调整到第 i 个位置上进行求解。
|
||||
|
||||
以 (2, 3, 1, 0, 2, 5) 为例,遍历到位置 4 时,该位置上的数为 2,但是第 2 个位置上已经有一个 2 的值了,因此可以知道 2 重复:
|
||||
|
||||
<div align="center"> <img src="https://github.com/CyC2018/CS-Notes/raw/master/docs/notes/pics/11548084848123.gif" width="250px"> </div><br>
|
||||
|
||||
<div align="center"> <img src="pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif" width="250px"> </div><br>
|
||||
|
||||
```java
|
||||
public boolean duplicate(int[] nums, int length, int[] duplication) {
|
||||
|
@ -148,7 +147,7 @@ private void swap(int[] nums, int i, int j) {
|
|||
|
||||
## 题目描述
|
||||
|
||||
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
|
||||
给定一个二维数组,其每一行从左到右递增排序,从上到下也是递增排序。给定一个数,判断这个数是否在该二维数组中。
|
||||
|
||||
```html
|
||||
Consider the following matrix:
|
||||
|
@ -166,13 +165,11 @@ Given target = 20, return false.
|
|||
|
||||
## 解题思路
|
||||
|
||||
从右上角开始查找。矩阵中的一个数,它左边的数都比它小,下边的数都比它大。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间。
|
||||
要求时间复杂度 O(M + N),空间复杂度 O(1)。
|
||||
|
||||
复杂度:O(M + N) + O(1)
|
||||
该二维数组中的一个数,它左边的数都比它小,下边的数都比它大。因此,从右上角开始查找,就可以根据 target 和当前元素的大小关系来缩小查找区间,当前元素的查找区间为左下角的所有元素。
|
||||
|
||||
当前元素的查找区间为左下角的所有元素,例如元素 12 的查找区间如下:
|
||||
|
||||
<div align="center"> <img src="pics/f94389e9-55b1-4f49-9d37-00ed05900ae0.png" width="250"/> </div><br>
|
||||
<div align="center"> <img src="pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif"/> </div><br>
|
||||
|
||||
```java
|
||||
public boolean Find(int target, int[][] matrix) {
|
||||
|
@ -203,10 +200,10 @@ public boolean Find(int target, int[][] matrix) {
|
|||
|
||||
```text
|
||||
Input:
|
||||
"We Are Happy"
|
||||
"A B"
|
||||
|
||||
Output:
|
||||
"We%20Are%20Happy"
|
||||
"A%20B"
|
||||
```
|
||||
|
||||
## 解题思路
|
||||
|
@ -217,6 +214,8 @@ Output:
|
|||
|
||||
从后向前遍是为了在改变 P2 所指向的内容时,不会影响到 P1 遍历原来字符串的内容。
|
||||
|
||||
<div align="center"> <img src="pics/_u66FF_u6362_u7A7A_u683C.gif"/> </div><br>
|
||||
|
||||
```java
|
||||
public String replaceSpace(StringBuffer str) {
|
||||
int P1 = str.length() - 1;
|
||||
|
@ -245,7 +244,7 @@ public String replaceSpace(StringBuffer str) {
|
|||
|
||||
## 题目描述
|
||||
|
||||
输入链表的第一个节点,从尾到头反过来打印出每个结点的值。
|
||||
从尾到头反过来打印出每个结点的值。
|
||||
|
||||
<div align="center"> <img src="pics/d99dc9e2-197c-4085-813d-7195da1c6762.png" width="300"/> </div><br>
|
||||
|
||||
|
|
BIN
docs/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif
Normal file
BIN
docs/pics/_u4E8C_u7EF4_u6570_u7EC4_u4E2D_.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 18 KiB |
BIN
docs/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif
Normal file
BIN
docs/pics/_u6570_u7EC4_u4E2D_u91CD_u590D_1548260392361.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 29 KiB |
BIN
docs/pics/_u66FF_u6362_u7A7A_u683C.gif
Normal file
BIN
docs/pics/_u66FF_u6362_u7A7A_u683C.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 11 KiB |
Loading…
Reference in New Issue
Block a user