# 代码技巧收集

# 动态滑动窗口,与贪心结合

    1. 跳跃游戏 II

比较有技巧的遍历方式

class Solution {
    public int jump(int[] nums) {
        int n = nums.length;
        int end = 0;
        int step = 0;
        int max = 0;
        for (int i = 0; i <= end; i++) {
            if (end >= n-1) return step;
            max = Math.max(max, i+nums[i]);
            if (i == end) {
                step++;
                end = max;
            }
        }
        return -1;
    }
}

# ListNode

public class Main {
    public class ListNode {
        int val;
        ListNode next;
        ListNode() {}
        ListNode(int val) { this.val = val; }
        ListNode(int val, ListNode next) { this.val = val; this.next = next; }

        public ListNode addNext(int val) {
            next = new ListNode(val);
            return next;
        }

        @Override
        public String toString() {
            return "{" +
                    "val=" + val +
                    ", next=" + next +
                    '}';
        }
    }
}
修改于: 8/11/2022, 3:17:56 PM