自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 手写LRU Java实现

手写lru的java实现

2022-07-08 17:48:07 609

原创 字节offer经历+总结+展望(杂谈)

前言2021.12.23,这个学期的最后一门考试结束,我的大三上学期也近尾声了。如果要给这个学期打一个分的话,我可能会打个75分吧。回想这个学期,开学立的那些flag,什么操作系统计网吃透啦,英语六级啦,没有一个让我很满意…但倒是有一个还看得过眼。这个学期刚开始时,和一个朋友开玩笑说,争取这个学期拿到字节offer,说完也没放在心上其实,不过最后还是给了我一个惊喜,在学期末拿到了字节实习offer。下面楼主分享分享这次经历以及给自己的本学期做个小总结吧拿offer经历1、报名参加字节举办的训练营活

2021-12-24 20:47:56 1981

原创 【字节跳动实习】后端日常实习的三次面试+hr面 面经

楼主情况楼主学历:双非一本(湖南工业大学)科班, 大一从材料专业转入计算机,目前大三上学期,方向是Java后端;投递的是字节跳动日常实习的后端实习。本来打算明年3月份春招投递,不过最近参加了字节跳动训练营,他们给了一个内推机会,就直接投了(被迫投递,哈哈)一面(70min)自我介绍(2~3min左右)根据训练营的项目扯了一堆基础:面试官:说说 TCP 三次握手&四次握手面试官:说说你了解的MySQL读写锁面试官:你刚刚说到了事务,那你说说事务四大特性是什么?面试官:并发事务带来

2021-11-30 21:26:44 6051

原创 git小技巧

git操作将所有文件移除后全部重新添加gir rm -r --cached .git add .git远程分支覆盖本地分支git reset --hard origin/master (这里master要修改为对应的分支名)

2021-11-07 19:45:21 96

原创 No.476 数字的补数

No.476 数字的补数对整数的二进制表示取反(0 变 1 ,1 变 0)后,再转换为十进制表示,可以得到这个整数的补数。 例如,整数 5 的二进制表示是 "101" ,取反后得到 "010" ,再转回十进制表示得到补数 2 。给你一个整数 num ,输出它的补数。 示例 1:输入:num = 5输出:2解释:5 的二进制表示为 101(没有前导零位),其补数为 010。所以你需要输出 2 。示例 2:输入:num = 1输出:0解释:1 的二进制表示为 1(没有

2021-10-18 12:15:02 102

原创 用最少数量的箭引爆气球【理解贪心】

No.452 用最少数量的箭引爆气球在二维空间中有许多球形的气球。对于每个气球,提供的输入是水平方向上,气球直径的开始和结束坐标。由于它是水平的,所以纵坐标并不重要,因此只要知道开始和结束的横坐标就足够了。开始坐标总是小于结束坐标。一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,若有一个气球的直径的开始和结束坐标为 xstart,xend, 且满足  xstart ≤ x ≤ xend,则该气球会被引爆。可以射出的弓箭的数量没有限制。 弓箭一旦被射出之后,可

2021-10-15 11:23:35 78

原创 No.96 不同的二叉搜索树

No.96 不同的二叉搜索树给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 示例 1:输入:n = 3输出:5示例 2:输入:n = 1输出:1 提示: 1 <= n <= 19思路分析BFS树的特性:节点左边的值都必该节点小,节点右边的值都比该节点大,因此,如下这样若以5为节点,那节点左边的子树都是0-5中的节点组成的,右子树则都是由7-12组成的,

2021-10-14 15:42:02 57

原创 力扣 No.122 买卖股票的最佳时机 II

力扣 No.122 买卖股票的最佳时机 II给定一个数组 prices ,其中 prices[i] 是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。 示例 1:输入: prices = [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获

2021-10-14 11:45:31 65

原创 DFS! 给我冲

No.剑指 Offer 12 矩阵中的路径给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相邻或垂直相邻的单元格。同一个单元格内的字母不允许被重复使用。 例如,在下面的 3×4 的矩阵中包含单词 "ABCCED"(单词中的字母已标出)。 示例 1:输入

2021-10-11 15:12:34 70

原创 [leetcode] No.1438 绝对差不超过限制的最长连续子数组

No.1438 绝对差不超过限制的最长连续子数组给你一个整数数组 nums ,和一个表示限制的整数 limit,请你返回最长连续子数组的长度,该子数组中的任意两个元素之间的绝对差必须小于或者等于 limit 。如果不存在满足条件的子数组,则返回 0 。 示例 1:输入:nums = [8,2,4,7], limit = 4输出:2 解释:所有子数组如下:[8] 最大绝对差 |8-8| = 0 <= 4.[8,2] 最大绝对差 |8-2| = 6 > 4. [8,2,

2021-10-09 10:16:54 167

原创 2021-10-01

No.1436 旅行终点站给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 paths[i] = [cityAi, cityBi] 表示该线路将会从 cityAi 直接前往 cityBi 。请你找出这次旅行的终点站,即没有任何可以通往其他城市的线路的城市。题目数据保证线路图会形成一条不存在循环的线路,因此恰有一个旅行终点站。 示例 1:输入:paths = [["London","New York"],["New York","Lima"],["Lima","Sao

2021-10-01 08:05:53 88

原创 No223矩形面积 java

No.223 矩形面积给你 二维 平面上两个 由直线构成的 矩形,请你计算并返回两个矩形覆盖的总面积。每个矩形由其 左下 顶点和 右上 顶点坐标表示: 第一个矩形由其左下顶点 (ax1, ay1) 和右上顶点 (ax2, ay2) 定义。 第二个矩形由其左下顶点 (bx1, by1) 和右上顶点 (bx2, by2) 定义。 示例 1:输入:ax1 = -3, ay1 = 0, ax2 = 3, ay2 = 4, bx1 = 0, by1 = -1, bx2 = 9, by

2021-09-30 09:53:02 380

原创 leetcode No451_根据字符出现频率排序

No451_根据字符出现频率排序题解本题就是一个统计字符串中字符数字大小的一个问题,思路:先计算所有的字符数字,然后将其排序输出。不难发现,本题特点是:每次找出剩余中出现最多的字符,将其拼接起来;根据这样的特点,咱可以使用优先队列这样一个数据结构将其存储起来(每次可以给出最值),注意优先队列存储的是map.entry这样的键值对,而不是map,因此可以给出如下代码:代码class Solution { public String frequencySort(String s) {

2021-07-03 10:02:07 59

原创 leetcode No1833 雪糕的最大数量

题目题解 贪心+排序贪心,顾名思义就是贪到最多的,本题要求一定数额的钱,要获得最多数量的雪糕,那以我们平常人的思维去买,就是:先买最便宜的然后再买次便宜的…因此我们可以先将数组排序,排序后从头开始遍历,一直算到前i个雪糕价钱之和大于coin时停止(或者一直小于coin就遍历到数组尾部停止),我们以官方例1来讲解,coins = 7 , 数组costs = [1, 3, 2, 4, 1],先排序,排完序后进行如下操作:到3时,coin剩余为0,则退出,最多可得到4根雪糕因

2021-07-02 09:43:35 138

原创 leetcode LCP.07 传递信息

题目链接:LCP.07 传递信息题解我使用的是深度遍历(dfs)其解法用到了图论中的邻接矩阵,拿官方例子举例:n = 5, relation = [[0,2],[2,1],[3,4],[2,3],[1,4],[2,0],[0,4]], k = 3 这样一个参数,画出来的表长什么样呢?其中纵列代表出的节点,行代表要入的节点,有1代表由纵列节点到横行节点有单向边,如reuslt[0, 2] = 1,则代表如下:为0则代表无边。思路对一个节点,遍历其所有的能出的节点,比如节点0,能

2021-07-01 12:23:26 133

原创 leetcode No374 猜数字大小 java

题目题解这道题和昨天的题一样都是二分法,有两个要注意的点在于:注意计算left = mid + 1 而不是 left = mid,这样方便后续操作,如判断left > right 的时候退出循环。注意计算中点的时候数值不要超出整型范围,要用left + (right - left) / 2 而不是 ( left + right ) / 2上述两细节点如果有不太清楚的可以看看我昨天类似题目写的详细解读:278. 第一个错误的版本 - breakman由于这里如果返回0的话说明刚好是答

2021-06-14 09:55:40 1651 2

原创 leetcode No278 第一个错误的版本 java

题目题解来看题,假如我是产品经理,那么我早就被打死了。。。(误不逗了不逗了,本题要注意的就是isBadVersion(int i)这个函数是已经定义好供我们调用的,现在给了我们一个n,就是总版本数,当我们调用到正确版本的时候就返回false,当调用到错误版本的时候返回true,所以第一个错误版本的左边就全都是false,右边(包括第一个错误版本自己)就全都是true,下面我们使用0代表false,1代表true,则举例如下:第一个“1”就是第一个错误版本,也就是我们要找到的位置,下面我们来说解

2021-06-13 10:42:27 1163 3

原创 leetcode No279 完全平方数 java

题目题解刚看到这道题的时候,我的直觉就告诉我,肯定有很巧妙的数学办法,但是左思右想还是没想出来,算了,还是先上普通的解法吧。万变不离其‘背包’—完全背包 朴素解法与昨天的每日一题非常相似(题目作标:No518 零钱兑换Ⅱ 题解作标:No518超基础全方位入门本题)这道题化成背包问题来看的话,背包问题的物品就是平方数(物品下标为i,体积为i*i), 背包容量就是给定的数字n。表中i 和 j 分别表示,考虑从1 到 i 这些数中取平方数(比如1、2、3取得为1、4、9),这些平方数以最少的数量相加得

2021-06-11 14:21:30 1236 2

原创 leetcode No518 零钱兑换Ⅱ java

题目给定不同面额的硬币和一个总金额。写出函数来计算可以凑成总金额的硬币组合数。假设每一种面额的硬币有无限个。示例 1:输入: amount = 5, coins = [1, 2, 5]输出: 4解释: 有四种方式可以凑成总金额:5=55=2+2+15=2+1+1+15=1+1+1+1+1示例 2:输入: amount = 3, coins = [2]输出: 0解释: 只用面额2的硬币不能凑成总金额3。示例 3:输入: amount = 10, coins = [10] 输

2021-06-10 17:52:36 179

原创 leetcode No474. 一和零 java

目录题目背包问题题目分析:这道题其实是背包问题的“升级版”,因此我就先来介绍一下背包问题,然后再来看这道题,下面我先说说背包问题的解法:背包问题有n个物品,它们有各自的体积和价值,现有给定容量的背包,如何让背包里装入的物品具有最大的价值总和?eg:number=4,capacity=8w数组代表该编号物品体积,v代表该编号物品的价值做一道dp题,第一步就是确定dp数组维度,以哪些作为维度,边界问题,我定义背包容量为一个维度,物品数量为一个维度,因为令物品有0状态和令背包容量可为0的

2021-06-07 09:23:29 84

原创 leetcode No203 移除链表元素 java

目录题目题解迭代写法递归写法:总结题目给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。题解迭代写法简单题简单做,我们循环一遍,找到则删掉该节点,考虑到单链表特殊性(因为单链表不可以找前一个元素),我们就让两个挨在一块儿的节点一起往后移动,让后一个节点值和val比较,如果节点值等于val,我们可以利用它的前一个节点来删除它自己,代码如下:class Solution { public List

2021-06-05 22:46:44 74 1

原创 leetcode No160 相交链表 java

目录题目分析1、普通暴力解法(1390ms)2、哈希表比较法(8ms)3、堆栈写法(4ms)4、双指针解法(1ms)总结题目来源:力扣(LeetCode)链接:leetcode No160 相交链表分析题目给定两条链表,我们需要找到这两条链表开始相交的那个节点,题意非常好理解,那么还是有几个要注意的点:题目要求的是节点要相同,而不是节点的数值相同,因此示例1中的两个‘1’节点就不是相同的节点比较的时候比的是节点对象的值,而不是节点val值今天的每日一题是一道简单题,既然是一道简单

2021-06-04 17:36:48 101

原创 leetcode No525 连续数组 java

题目给定一个二进制数组 nums , 找到含有相同数量的 0 和 1 的最长连续子数组,并返回该子数组的长度。示例 1:输入: nums = [0,1]输出: 2说明: [0, 1] 是具有相同数量0和1的最长连续子数组。示例 2:输入: nums = [0,1,0]输出: 2说明: [0, 1] (或 [1, 0]) 是具有相同数量0和1的最长连续子数组。 提示:1 <= nums.length <= 105nums[i] 不是 0 就是 1来源:力扣(Leet

2021-06-03 10:57:02 131

原创 leetcode No.523 连续的子数组和 java

题目给你一个整数数组 nums 和一个整数 k ,编写一个函数来判断该数组是否含有同时满足下述条件的连续子数组:子数组大小 至少为 2 ,且子数组元素总和为 k 的倍数。如果存在,返回 true ;否则,返回 false 。如果存在一个整数 n ,令整数 x 符合 x = n * k ,则称 x 是 k 的一个倍数。示例 1:输入:nums = [23,2,4,6,7], k = 6输出:true解释:[2,4] 是一个大小为 2 的子数组,并且和为 6 。示例 2:输入:nums

2021-06-02 21:57:49 136

原创 leetcode每日刷题 No_91 解码方法(动态规划)

第91题:解码方法(动态规划题)一条包含字母 A-Z 的消息通过以下映射进行了 编码 :'A' -> 1'B' -> 2...'Z' -> 26要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法)。例如,“11106” 可以映射为:“AAJF” ,将消息分组为 (1 1 10 6)“KJF” ,将消息分组为 (11 10 6)注意:消息不能分组为 (1 11 06) ,因为 “06” 不能映射为 “F” ,这是由于 “6” 和 “0

2021-04-21 12:16:33 178

原创 Spring 复习 aop部分(2)

文章目录一、pandas是什么?总结一、pandas是什么?总结提示:这里对文章进行总结:例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。...

2021-04-16 17:26:25 192

原创 LeetCode No.39 组合总和 java

目录原题题解总结原题给定一个无重复元素的数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。candidates 中的数字可以无限制重复被选取。说明:所有数字(包括 target)都是正整数。解集不能包含重复的组合。示例 1:输入:candidates = [2,3,6,7], target = 7,所求解集为:[ [7], [2,2,3]]示例 2:输入:candidates = [2,3,.

2021-04-06 16:07:16 128

原创 LeetCode刷题 No.46 全排列 java

目录题目题解题目给定一个 没有重复 数字的序列,返回其所有可能的全排列。示例:输入: [1,2,3]输出:[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1]]来源:力扣(LeetCode)链接: LeetCode刷题 No.46 全排列题解本题是一道回溯算法的题,回溯的递归结束条件为递归深度到达了数组长度,则保存当前序列然后出递归,以下是我的代码:我的代码class Permutation_S

2021-04-06 11:51:14 119

原创 Leetcode No.51 N皇后 java

文章目录题目分析题目n 皇后问题 研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击。给你一个整数 n ,返回所有不同的 n 皇后问题 的解决方案。每一种解法包含一个不同的 n 皇后问题 的棋子放置方案,该方案中 ‘Q’ 和 ‘.’ 分别代表了皇后和空位。示例 1:输入:n = 4输出:[[".Q…","…Q",“Q…”,"…Q."],["…Q.",“Q…”,"…Q",".Q…"]]解释:如上图所示,4 皇后问题存在两个不同的解法。示例 2:输入:n

2021-04-02 17:11:55 129

原创 LeetCode No.53 最大子序和 java (分治算法) (2)

目录题目题解 分而治之总结昨天(其实是前天),我阐述了这道题的贪心解法和动态规划解法,今天我来说说另一个方法—分治算法(这个算法的效率并没有贪心和动态规划的方法高效,但是它却和这两种方法有这相同的重要性)题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例2:输入:nums = [1]输

2021-04-01 11:38:13 231

原创 LeetCode No.53 最大子序和 java 贪心 动态规划 (1)

目录题目题解贪心算法动态规划(dp)总结题目给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例1:输入:nums = [-2,1,-3,4,-1,2,1,-5,4]输出:6解释:连续子数组 [4,-1,2,1] 的和最大,为 6 。示例2:输入:nums = [1]输出:1示例 3:输入:nums = [0]输出:0示例 4:输入:nums = [-1]输出:-1示例 5:输入:nums = [-100000

2021-03-29 20:58:46 175 1

原创 Spring学习笔记(一)

目录前言一、了解Spring的第一个核心功能:ioc什么是ioc?了解:java创建对象的方式都有哪些?2.读入数据总结前言众所周知,Spring是一个框架,学习框架是有一定步骤的:知道框架的功能,并学会初步的使用:通过查看该框架的文档,学习语法,这一步骤中,不需要知道该框架是如何实现的,只需要学会使用方法、调用接口,学会了这一步,我们就能成为一个可以“搬砖”的程序员了。了解框架的内部实现:在学会使用框架并且用框架做过一些项目的时候,我们就可以去了解了解我们所使用的框架是如何实现的了,只是停留在

2021-03-27 20:06:04 117

原创 LeetCode No.38 外观数列 Java (带注解)

目录题目题解String、StringBuilder、StringBuffer的区别题目给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:1. 12. 113. 214.

2021-03-27 13:14:05 144

原创 LeetCode每日刷题No.35

目录No.35 搜索插入位置题解:二分查找官方题解总结No.35 搜索插入位置给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0来源:力扣(LeetCode)链接

2021-03-25 09:27:32 90

原创 LeetCode每日刷题No.28 Implement strStr()

目录原题前言我的解法答案解法1答案解法2总结原题实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", needle = "bba"输出: -1说明:当 needle 是空字符串

2021-03-24 12:20:30 92 1

原创 LeetCode每日刷题No.27

目录No27.移除元素题目解析自己的答案思路快慢指针更好的答案思路相撞指针总结No27.移除元素题目给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。不要使用额外的数组空间,你必须仅使用 O(1) 额外空间并 原地 修改输入数组。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。来源:力扣(LeetCode)链接:LeetCode No.27 移除元素解析自己的答案这道题和上一道题目类似(No.26),在写了前一

2021-03-23 00:56:50 134

原创 LeetCode每日刷题 No.26

废物的记录刷题blogLeetCode No.26 删除有序数组中的重复项自己答案的思路官方答案解释代码部分自己对答案代码的其他理解快慢指针的其他应用1. 判断一个链表是否存在环2.找到一个有序链表的中位数LeetCode No.26 删除有序数组中的重复项第一眼看这道题感觉是一道挺简单的题,不过我自己代码功底还是太差了,20多行代码得出了答案,虽然都能得出答案,但是一看官方答案的6行代码还是傻眼了,不得不说自己还是太菜了啊。自己答案的思路一个已经排序好的数组,我第一想法就是前一个数和后一个数相比,

2021-03-21 23:32:42 166

空空如也

空空如也

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

TA关注的人

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