自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一碗机智的糖浆的博客

大数据工程师一枚,每日刷算发题

  • 博客(20)
  • 收藏
  • 关注

原创 144. 二叉树的前序遍历(java实现)--LeetCode

文章目录题目:解法1:递归解法2:栈解法3:Morris解法4:颜色标记题目:给你二叉树的根节点 root ,返回它节点值的 前序 遍历。示例 1:输入:root = [1,null,2,3]输出:[1,2,3]示例 2:输入:root = []输出:[]示例 3:输入:root = [1]输出:[1]示例 4:输入:root = [1,2]输出:[1,2]示例 5:输入:root = [1,null,2]输出:[1,2]提示:树中节点数目在范围 [0

2020-12-27 08:05:25 326

原创 49. 字母异位词分组(java实现)--LeetCode

文章目录题目:解法1:排序解法2:计数解法3:质数题目:给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]说明:所有输入均为小写字母。不考虑答案输出的顺序。解法1:排序/** * 思路: * 创建map和set * map中k是排序

2020-12-18 01:09:48 348

原创 242. 有效的字母异位词(java实现)--LeetCode

题目242. 有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。进阶:如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?解法1:排序/** * 思路: * 简单过滤:看两个字符串长度是否一致

2020-12-17 23:15:51 284

原创 641. 设计循环双端队列(java实现)--LeetCode

文章目录题目解法1:数组实现解法2:链表实现题目641. 设计循环双端队列设计实现双端队列。你的实现需要支持以下操作:MyCircularDeque(k):构造函数,双端队列的大小为k。insertFront():将一个元素添加到双端队列头部。如果操作成功返回true。insertLast():将一个元素添加到双端队列尾部。如果操作成功返回 truedeleteFront():从双端队列头部删除一个元素。 如果操作成功返回 truedeleteLast():从双端队列尾部删除一个元素。如

2020-12-17 21:06:57 258 1

原创 手动实现循环队列

/** * 思路: * 数组实现循环队列 * 入队: * 队满条件:(head + 1) % arr.length==tail * 没有满的时候入队,并且tail后移:tail=(tail+1)%arr.length * 出队: * 队空条件:head==tail * head出队,后移head:head=(head+1)%arr.length; */ public class CircularQueue { public static void main(String[] ar

2020-12-17 00:52:05 61

原创 用数组,链表手动实现队列

数组实现队列(poll一次数据迁移一次)/** * 思路: * 用数组实现队列 * 入队:判断队列是否满了。没满,加入元素,下标后移 * 出队:判断队列是否为null。出队的是下标0的元素。不为null,数组整体前移1。更新tail */public class MoveArr_Poll { public static void main(String[] args) { MoveArr_Poll queue = new MoveArr_Poll(2);

2020-12-16 19:14:58 68

原创 70. 爬楼梯--4种解法(递归,递归-记忆数组,迭代-数组,迭代-累加)LeetCode

文章目录题目解法1:递归解法2:记忆数组解法3:迭代(累加)解法4:迭代(数组)题目70. 爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3

2020-12-16 17:30:04 2760

原创 125. 验证回文串(java实现)--2种解法(反转字符串,双指针)LeetCode

文章目录题目:解法1:反转解法2:双指针题目:125. 验证回文串给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写。说明:本题中,我们将空字符串定义为有效的回文串。示例 1:输入: "A man, a plan, a canal: Panama"输出: true示例 2:输入: "race a car"输出: false解法1:反转/** * 思路: * 过滤掉除字母和数字外的字符 * 把所有的字母统一大写或小写 * 反转字符串进行比较 *

2020-12-16 17:02:27 518

原创 509. 斐波那契数(java实现)--4种解法(递归,递归-记忆数组,迭代-数组,迭代-累加)LeetCode

文章目录题目解法1:递归解法2:迭代(记忆数组)解法3:迭代(变量)题目509. 斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为斐波那契数列。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0, F(1) = 1F(N) = F(N - 1) + F(N - 2), 其中 N > 1.给定 N,计算 F(N)。示例 1:输入:2输出:1解释:F(2) = F(1) + F(0) = 1 + 0 = 1.示例 2:输入

2020-12-15 11:44:17 414

原创 HashSet源码分析--如何实现的元素不重复

文章目录核心问题:set如何实现的元素不重复?HashSet源码解析HashMap构造add方法Map源码put方法hash方法putValue方法静态内部类Node核心问题:set如何实现的元素不重复?HashSet源码解析HashMap构造底层就是实现一个HashMappublic HashSet() { map = new HashMap<>();}add方法add操作就是把元素作为key放入map中,每次存放一个present的值,这个值没有任何意义,每次存放会

2020-12-12 14:55:23 129 2

原创 42. 接雨水(java实现)--LeetCode

文章目录题目解法1:暴力(左右边界)解法2:暴力(纵向注水)题目给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。示例 1:输入:height = [0,1,0,2,1,0,1,3,2,1,2,1]输出:6解释:上面是由数组 [0,1,0,2,1,0,1,3,2,1,2,1] 表示的高度图,在这种情况下,可以接 6 个单位的雨水(蓝色部分表示雨水)。 示例 2:输入:height = [4,2,0,3,2,5]输出:9提示:n

2020-12-12 12:37:08 693

原创 239. 滑动窗口最大值(java实现)--LeetCode

解法1:暴力/** * 思路: * 比较k范围内的值,找到并记录 * 如果当前的max等于start-1,前移的时候就重新从start到end找max。 * 如果不等于,直接比较max和end */ public int[] maxSlidingWindow(int[] nums, int k) { int start=0,end=k-1,max=nums[0]; int[] result=new int[nums.length-k+1];

2020-12-10 14:34:17 136

原创 深入原理分析:Airpods空间音频是如何实现5.1,7.1环绕声,杜比全景声的效果

本文大部分内容来自B站UP主:电玩科技AK的你的AirPods Pro价值翻倍了!【人耳是怎么通过声音辨别方位的?】视频本文核心问题:Airpods是如何实现虚拟5.1,7.1环绕声,杜比全景声的效果空间音频双声道一个模仿你左边发出的声音,一个模仿你右边发出的声音。5.1环绕声音频在水平方向上得到了扩展,而在垂直方向上没有布局扬声器。(前方三个、左右各一个、后方一个扬声器=6个speaker=6个channel)7.1环绕声在5.1的上方加了两个扬声器。双耳效应:依据声音进入耳.

2020-12-06 03:22:54 9515

原创 快速上手Git--Git原理,使用技巧,git和github联动

安装Gitgit分布式版本控制器windows用户需要下载Git检查是否安装并配置好git:执行命令查看git版本$ git --version配置github远程连接协议类型https协议,提交远程仓库时每次都需要输入用户名,密码ssh协议,只需要在一开始配置好公钥和私钥就可以免密登录了为了一劳永逸,我们使用ssh协议和github通信1.在本地生成公钥私钥$ ssh-keygen -t rsa -C "邮箱地址"-t = The type of the key to g

2020-12-04 22:03:59 224

原创 84. 柱状图中最大的矩形(java实现)--LeetCode

题目:解法1:暴力/** * 思路: * 暴力,双层for * 记录最大面积max,和最小柱子的高度 * 不断向前遍历,找到每个棒子所在范围内的最小值,更新min和area * * 注意:1根柱子也可以计算面积 */ public int largestRectangleArea(int[] heights) { int max=0,minHeight; for (int i=0;i<heights.length;i++){

2020-12-04 02:03:52 362

原创 155. 最小栈(java实现)--LeetCode

文章目录题目:解法1:数组实现题目:解法1:数组实现/** * 思路: * 用数组实现stack * current指向的是还没有值的位置 * push current下标不断移动。越界扩容 * pop 出栈栈顶元素:current-1 * top 获取栈顶元素:current-1 * getMin 记录最小值,遍历整个数组 */ class MinStack { int[] arr; int current; /** initi

2020-12-02 22:25:56 170

原创 快速跳转Leetcode英文站

leetcode 英文站

2020-12-02 22:14:32 773

原创 20. 有效的括号(java实现)--LeetCode

目录题目:解法1:Stack解法2:Stack(不使用Map)题目:给定一个只包括'(',')','{','}','[',']'的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串示例 1:输入: "()"输出: true示例2:输入: "()[]{}"输出: true示例3:输入: "(]"输出: false示例4:...

2020-12-02 20:56:12 143

原创 Stack源码分析

目录push放入元素pop取出元素peek查看栈顶元素search返回元素在栈中的下标(下标从1开始,栈顶是1,以此类推)push放入元素class Stack<E> extends Vector<E> { 。。。 public E push(E item) { //调用父类Vector 的 addElement方法 addElement(item); return item; .

2020-12-02 16:52:27 85

原创 Prioprity源码分析--priority如何实现优先级排序?

目录本文围绕的核心问题:priority是怎么实现的根据优先级排序?Demo源码分析:offer方法siftUp方法siftUpUsingComparator方法接口Comparator中的compare方法(默认比较器)我自定义的compare方法siftUpComparable方法本文围绕的核心问题:priority是怎么实现的根据优先级排序?Demopublic class Demo { public static void main(St..

2020-12-02 12:10:25 535 4

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除