随笔分类 - LeetCode学习
摘要:func binarySearch(_ array: [Int], _ target: Int) -> Int? { var left = 0 var right = array.count - 1 while left <= right { let mid = (left + right) / 2
阅读全文
摘要:queue1 是最后生成的栈 queue2 是临时队列,把新进来的先放进去,再把queue1里的数据从头到尾读进去,然后互换 class MyStack { var queue1: [Int] = [] var queue2: [Int] = [] init() { } func push(_ x:
阅读全文
摘要:给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 示例 2: /** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var l
阅读全文
摘要:给你一个整数数组 nums,请你将该数组升序排列。 示例 1: 输入:nums = [5,2,3,1] 输出:[1,2,3,5] 冒泡排序 class Solution { func sortArray(_ nums: [Int]) -> [Int] { guard nums.count > 1 e
阅读全文
摘要:反转一个单链表。 示例: 输入: 1->2->3->4->5->NULL 输出: 5->4->3->2->1->NULL 进阶:你可以迭代或递归地反转链表。你能否用两种方法解决这道题? 思路:双指针迭代 public class ListNode { public var val: Int publ
阅读全文
摘要:/** * Definition for a binary tree node. * public class TreeNode { * public var val: Int * public var left: TreeNode? * public var right: TreeNode? *
阅读全文
摘要:快慢双指针法,快指针一次走两步,慢指针一次走一步,如果有环必会相遇 public class ListNode { public var val: Int public var next: ListNode? public init(_ val: Int) { self.val = val self
阅读全文
摘要:假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数。 示例 1: 输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例 2: 输入: 3 输出: 3 解
阅读全文