原创 合併兩個有效鏈表

public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode dummy = new ListNode(-1); ListN

原创 UIViewController添加addChildViewController過程

父控制器 CodeInitViewController.m #import "CodeInitViewController.h" #import "CodeInitChildViewController.h" @interfa

原创 iOS面試問題(一)

師大小海騰 iOS相關總結 南華Coder iOS底層 Swift開發小記 MAC及Flutter 1、什麼是多態 2、@synthesize和@dynamic 3、block(底層結構和類型,循環引用, 使用類似_name訪問s

原创 堆的實現代碼

import java.util.Arrays; import java.util.NoSuchElementException; public class BinaryHeap { private static

原创 TodoList 每日一題 正則表達式匹配

每日一題 正則表達式匹配 比較有代表性的分治+DP 先簡化題目, 第一個版本考慮.和* bool isMatch(string s, string p) { if (p.empty()) return s.empty();

原创 dispatch_barrier_sync 和dispatch_barrier_async的區別

需求:有4個任務{1,2,3,4},執行完前2個再執行後2個 這裏我們用到柵欄函數dispatch_barrier_(a)sync,(也可以用隊列組),我們要注意的是不能使用全局併發隊列(系統提供給我們的)否則會散失柵欄函數的意義

原创 兩數之和,三數之和

兩數之和 方法一:暴力(throw new IllegalArgumentException) 時間複雜度:O(n^2) 空間複雜度:O(1) public int[] twoSum(int[] nums, int target

原创 堆和二叉堆的實現和特性

二叉堆:通過完全二叉樹(不是二叉搜索樹) 完全二叉樹就是它的根和每一級節點都是滿的,除了最小面一層的葉子可能不滿 用二叉搜索樹也可以實現堆(也可以,但是慢了,二叉搜索樹,整體是有序的,可以找最小值,也可以找最大值,同時增加刪除也是

原创 二叉樹前序,後序,中序遍歷以及驗證二叉樹

二叉樹前序遍歷 public List<Integer> preorderTraversal(TreeNode root) { LinkedList<TreeNode> stack = new LinkedList<>();

原创 空間複雜度問題

爲什麼同樣都是用遞歸, 有的空間複雜度是O(logn),有的是O(N)呢,我是這麼理解的,可能不對,大家給指導下,如果是遞歸中的參數+1或者-1這種的,因爲遞歸要佔用棧空間,所以空間複雜度爲O(n),如果是一半一半的遞歸,因爲每次

原创 6.10 leetcode 二叉樹的最大深度, 驗證二叉搜索樹

驗證二叉搜索樹 //方法一:遞歸 時間O(n) 空間遞歸用棧空間O(n) public boolean isValidBST(TreeNode root) { return (root, null, null); } pub

原创 leetCode589 N叉樹的前序遍歷

589 N叉樹前序遍歷 給定一個 N 叉樹,返回其節點值的前序遍歷。 返回其前序遍歷:[1, 3, 5, 6, 2, 4]. // 遞歸: 時間複雜度O(M),M爲N叉樹中的子節點個數,空間複雜度爲O(M),M表示節點個數 cl

原创 樹,二叉樹,二叉搜索樹算法課程總結:

樹的由來 由單鏈表最大問題查詢太慢O(n)引出跳錶(更快的索引),再想到的思想,就是加速,加速的關鍵在於升維,那麼二維數據結構常見的樹,圖, 樹的出現如果在單鏈表的next有多個的話,就變成了樹 樹(根節點,左子樹,右子樹), 現

原创 6.8 移除元素

複習第三遍 移除元素 方法一: 暴力 空間複雜度O(n^2),時間複雜度O(1) class Solution { public int removeDuplicates(int[] nums) { int