LeetCode-斐波拉契数列
参考文献
Classic Computer Science Problems in Java
斐波拉契数列
12345678910111213public class Fib2 { private static int fib2(int n) { if (n < 2) { return n; } return fib2(n - 1) + fib2(n - 2); } public static void main(String[] args) { System.out.println(fib2(5)); System.out.println(fib2(10)); }}
剪枝
1234567891011121314151617public class Fib3 { static Map<Integer, Integer> memo = new HashMap<>(Map.of(0, 0, 1, 1)); private static int fib3( ...
LeetCode-汉诺塔
参考文献
Classic Computer Science Problems in Java
汉诺塔
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748import java.util.Stack;public class Hanoi { private final int numDiscs; public final Stack<Integer> towerA = new Stack<>(); public final Stack<Integer> towerB = new Stack<>(); public final Stack<Integer> towerC = new Stack<>(); public Hanoi(int discs) { numDiscs = discs; for (int i = 1; i <= discs; i++) ...
LeetCode-Array题目笔记
参考文献
1.Two Sum
12345678910111213141516171819202122// Input: nums = [2,7,11,15], target = 9// Output: [0,1]// Explanation: Because nums[0] + nums[1] == 9, we return [0, 1].class Solution { public int[] twoSum(int[] nums, int target) { int[] result = new int[2]; // 采用nums[j]=target-nums[i]来判断两数之和 HashMap<Integer, Integer> map = new HashMap<>(nums.length); for (int i = 0; i < nums.length; i++) { final int surplusNumber = target ...