-
LeetCode - 0118.杨辉三角 & 0119.杨辉三角II
2022-04-27
0118.杨辉三角 和 0119.杨辉三角II 这两个题目都是在解决同一个问题,所以放在一起解答。 题目1 来源:0118.杨辉三角 给定一个非负整数 numRows,生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 难度:简…
-
LeetCode - 0070.爬楼梯
2022-04-25
题目 来源:0070.爬楼梯 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢? 难度:简单 示例1 输入:n = 2 输出:2 解释:有两种方法可以爬到楼顶。 1. 1 阶 + 1 阶 2. 2 阶 示例2 输入:n = 3 输出:3…
-
LeetCode - 0053.最大子数组和
2022-04-25
题目 来源:0053.最大子数组和 给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。 子数组 是数组中的一个连续部分。 难度:简单 示例1 输入:nums = [-2,1,-3,4,-1,2,1,-5,4] 输出:6 解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。 示例2…
-
LeetCode - 004.寻找两个正序数组的中位数
2022-04-12
题目 来源:004.寻找两个正序数组的中位数 给定两个大小分别为 m 和 n 的正序(从小到大)数组 nums1 和 nums2。请你找出并返回这两个正序数组的 中位数。 算法的时间复杂度应该为 O(log(m+n))。 难度:困难 示例1 输入:nums1 = [1, 3], nums2 = [2] 输出:2…
-
LeetCode - 003.无重复字符的最长子串
2022-04-07
题目 来源:003.无重复字符的最长子串 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例1 输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例2 输入: s = "bbbbb" 输出: 1 解释: 因为无…
-
二叉查找树
2021-09-02
在一组排好序的数中查找某个值是否在,有一种常用的方法叫做二分查找。二分查找的思想是,先判断这组数中间位置的那个元素是否和目标值相等,如果相等,则这个元素就是要查找的元素;否则,将数组从中间位置分成两半,假设数组是升序的,那么左半部分小于(等…
-
Java 中的对象拷贝
2021-06-04
有时候我们需要创建一个对象的复制品,这个复制品和原来的对象拥有相同的类型、相同的属性。这个过程就是对象的拷贝。 Java 中有三种类型的拷贝:浅拷贝(Shallow Copy),深拷贝(Deep Copy),延迟拷贝(Lazy Copy)。 浅拷贝 浅拷贝在复…
-
Java Object Class
2021-05-25
Object 是所有类的基类,他有一些方法是我们经常用到的,比如 equals(Object obj), hashCode(), 还有并发编程中用到的 notify(), wait() 等。 定义一个类时,如果没有用 extends 去继承其他类,那么他会隐式地继承 Object 类,我们也可以显式地去继承 Object 类,这两种方式是一样的。 // 隐式 class MyClass {} // 显式 class MyClass extends Object {} Object 类中有一些方…
-
Java Generics
2021-05-25
泛型的概念 泛型,也就是把类型参数化。比如定义一个方法,他需要对几种不同的数据类型做相同的处理,如果不用泛型,那我们就需要定义好几个方法,每个方法对应每种数据类型。这几个方法只是参数类型不同,方法体都是一样的,那么就显得很冗余。 拿比较常用的 List…
-
vim 配置 Golang 开发
2021-05-23
我很喜欢 Vim 编辑器,也想学习下 Golang,于是在一台旧的 Macbook Pro 上配置了 Golang 的 Vim 开发环境。 neovim 和 vim-plug 我使用的是 neovim,插件管理用的是 vim-plug。首先通过 homebrew 安装 neovim: brew install neovim 安装完成后,通过命令 nvim 启动 neovim,我在 zsh 的配置文件 .zshrc 里添加了 alias vim="nvim" 这…