随笔分类 - data structure
1
数据结构
摘要:public int uniquePaths(int m,int n){ int[][] dp = new int[m][n]; for(int i=0;i<n;i++){ dp[0][i] = 1; } for(int i=0;i<m;i++){ dp[i][0] = 1; } for(int i
阅读全文
摘要:public int minPathSum(int[][] grid){ for(int i=0;i<grid.length;i++){ for(int j=0;j<grid[0].length;j++){ if(i==0 && j==0){ continue; }else if(i==0){ gr
阅读全文
摘要:public int climbStairs(int n){ if(n == 1){ return 1; } int[] dp = new int[n+1]; dp[1] = 1; dp[2] = 2; for(int i =3;i<=n;i++){ dp[i] = dp[i-1] + dp[i-2
阅读全文
摘要:public void move(int n, String from, String buffer, String to){ if(n==1){ System.out.println("from "+ from +" to " + to); } move(n-1, from, to, buffer
阅读全文
摘要://144. Binary Tree Preorder Traversal (Medium) public List<Integer> preorderTraversal(TreeNode root){ List<Integer> ret = new ArrayList<Integer>(); if
阅读全文
摘要:public ListNode addTwoNumbers(ListNode l1,ListNode l2){ Stack<Integer> stack1 = buildStack(l1); Stack<Integer> stack2 = buildStack(l2); ListNode head
阅读全文
摘要:public ListNode reverseList(ListNode head){ ListNode newHead = new ListNode(); while(head!=null){ ListNode next = head.next; head.next = newHead.next;
阅读全文
摘要://方法一 入度表(广度优先遍历) public boolean canFinish(int numCourses,int[][] prerequisites){ int[] indegrees = new int[numCourses]; List<List<Integer>> adjacency
阅读全文
摘要:public boolean isValid(String s){ Stack<Character> stack = new Stack<>(); Map<Character, Character> map = new HashMap<>(); map.put('{', '}'); map.put(
阅读全文
摘要:class MinStack{ private Stack<Integer> dataStack = new Stack<Integer>(); private Stack<Integer> minStack = new Stack<Integer>(); public void push(int
阅读全文
摘要:class MyStack{ private Queue<Integer> queue = new LinkedList<>(); public void push(int x){ queue.add(x); int cnt = queue.size(); while(cnt-->1){ queue
阅读全文
摘要:class MyQueue{ private Stack<Integer> in = new Stack<>(); private Stack<Integer> out = new Stack<>(); public void push(int x){ in.push(x); } public in
阅读全文
摘要:Input: [[1,1,0], [1,1,0], [0,0,1]] Output: 2 Explanation:The 0th and 1st students are direct friends, so they are in a friend circle. The 2nd student
阅读全文
摘要:Input: 11000 11000 00100 00011 Output: 3 public int numIslands(char[][] grid){ if(grid==null || grid.length==0){ return 0; } int islandNum = 0; for(in
阅读全文
摘要:[[0,0,1,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,1,1,0,0,0], [0,1,1,0,1,0,0,0,0,0,0,0,0], [0,1,0,0,1,1,0,0,1,0,1,0,0], [0,1,0,0,1,1,0,0,1,1,1,0,0], [0,0
阅读全文
摘要:Input: beginWord = "hit", endWord = "cog", wordList = ["hot","dot","dog","lot","log","cog"] Output: 5 Explanation: As one shortest transformation is "
阅读全文
摘要:For example, Given board = [ ['A','B','C','E'], ['S','F','C','S'], ['A','D','E','E'] ] word = "ABCCED", -> returns true, word = "SEE", -> returns true
阅读全文
摘要:private static final String[] KEYS = {"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; public List<String> letterCombinations(String digits){
阅读全文
摘要:private int result = 0; public int totalNQueens(int n){ int[] x = new int[n]; queens(x,n,0); return result; } private void queens(int[] x,int n,int ro
阅读全文
摘要:1、不同数字全排列 [1,2,3] have the following permutations: [ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] public List<List<Integer>> permute(int[] n
阅读全文
1