File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ /**
2+ * 860
3+ */
4+ class LemonadeChange {
5+ public boolean lemonadeChange (int [] bills ) {
6+ int five = 0 ;
7+ int ten = 0 ;
8+ if (bills .length == 0 ) {
9+ return false ;
10+ }
11+ for (int i = 0 ; i < bills .length ; i ++) {
12+ if (bills [i ] == 5 ) {
13+ five ++;
14+ } else if (bills [i ] == 10 ) {
15+ if (five == 0 ) {
16+ return false ;
17+ }
18+ five --;
19+ ten ++;
20+ } else {
21+ if (ten > 0 && five > 0 ) {
22+ ten --;
23+ five --;
24+ } else {
25+ if (five > 2 ) {
26+ five -= 3 ;
27+ } else {
28+ return false ;
29+ }
30+ }
31+ }
32+ }
33+ return true ;
34+ }
35+ }
Original file line number Diff line number Diff line change 1- 学习笔记
1+ ``` java
2+ class Solution {
3+ public int findDisorder (int nums []) throws Exception {
4+ if (nums. length < 2 ) {
5+ throw new Exception (" error" );
6+ }
7+ int left = 0 ;
8+ int right = nums. length - 1 ;
9+ int mid = (left + right) / 2 ;
10+ while (left < right) {
11+ if (nums[mid] == 0 && nums[mid] > nums[mid + 1 ]) {
12+ return nums[mid];
13+ }
14+ if (nums[mid] == nums. length && nums[mid] < nums[mid - 1 ]) {
15+ return nums[mid];
16+ }
17+ if (nums[left] < nums[mid]) {
18+ right = mid;
19+ } else {
20+ left = mid;
21+ }
22+ }
23+ throw new Exception (" error" );
24+ }
25+ }
26+ ```
27+
28+
29+ ### 总结:
30+ - 1.贪心算法,只适用特定场景,有些切入点有点奇怪,需要自己理解。
31+ - 2.牛顿迭代法还是看不懂数学公式,还是套代码模板把。
32+ - 3.关于BFS和DFS还是需要多联系。
33+ - 4.二分查找有时候有边界值和数组越界的问题,需要在代码里面多注意
Original file line number Diff line number Diff line change 1+ /**
2+ * @author @sailength on 2020/7/6.
3+ * 200
4+ */
5+ public class NumberOfIslands {
6+ public int numIslands (char [][] grid ) {
7+
8+ if (grid .length == 0 || grid == null ) {
9+ return 0 ;
10+ }
11+ int lengthy = grid .length ;
12+ int lengthx = grid [0 ].length ;
13+
14+ int num = 0 ;
15+ for (int i = 0 ; i < lengthy ; i ++) {
16+ for (int j = 0 ; j < lengthx ; j ++) {
17+ if (grid [i ][j ] == '1' ) {
18+ num ++;
19+ dfs (grid , i , j );
20+ }
21+ }
22+ }
23+ return num ;
24+ }
25+
26+ private void dfs (char [][] grid , int x , int y ) {
27+ if (grid .length == 0 || grid == null ) {
28+ return ;
29+ }
30+ int lengthy = grid .length ;
31+ int lengthx = grid [0 ].length ;
32+ if (x < 0 || y < 0 || x >= lengthx || y >= lengthy || grid [x ][y ] == '0' ) {
33+ return ;
34+ }
35+ grid [x ][y ] = '0' ;
36+ dfs (grid , x - 1 , y );
37+ dfs (grid , x + 1 , y );
38+ dfs (grid , x , y - 1 );
39+ dfs (grid , x , y + 1 );
40+ }
41+ }
You can’t perform that action at this time.
0 commit comments