自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 问答 (1)
  • 收藏
  • 关注

原创 8月5日:今日面试【阿里一面】

阿里的这个面试来的突如其来,本来上个月投了阿里的提前提,然后31号阿里笔试,可是阿里的笔试太难了,菜鸡的我一道题都没ac(总共两道题一个小时),笔试都这样了,那肯定凉凉哇。可是想不到昨天刚准备迷糊一下的,突然两点左右收到一个电话,电话被我那个破荣耀20识别成了骚扰电话,本来打算挂掉的,可还是接了,然后一个小哥哥说他是阿里的面试官,问我啥时候有空来面个试呗,我当时就一脸懵,(哈?这什么情况,我笔试不是挂了吗?怎么还有面试)然后情不自禁地说了一句哈?,然后那个小哥哥回了我一句,你上次不是投了我们阿里巴巴吗?(我

2020-08-05 17:14:38 288

原创 8月3日:子集

题目如下:这是一道求排列组合问题。求排列组合问题常用思路是递归和回溯思想,然后好不容易看懂了解题方法开始自己写,写完以后就是这个样子然后我又看了一下题解,感觉我写的和题解基本一样了,就方法名称不一样(难道方法名不一样还有影响嘛?),然后我再仔细检查了一下两者之间的差别,还真写个地方不一样我add的是函数传进来的list,而题解是用的res.add(new ArrayList<Integer>(list));原来如此,因为形参传进去的都是引用类型的变量,list引用所指

2020-08-03 10:46:59 193

原创 解决浏览器浏览github无法查看图片的问题

今天浏览github看到一篇写的很好的关于java基础知识的文章,奈何chrome无法查看github上面的图片,所以找了几分钟,终于找到办法了,究其原因主要还是因为系统的host把github的图片服务器给屏蔽了。所以解决办法就是修改系统hosts用记事本以管理员身份打开C:\Windows\System32\drivers\etc\hosts文件。然后在文件末尾新增:# GitHub Start 192.30.253.112 Build software better, tog

2020-07-31 17:39:30 761

原创 7月31:今天来写写快速排序

时间过得可真快,转眼又到了7月的最后一天了,复习到这个时候,感觉有点俱足无措,感觉啥都没准备好,又感觉不知道准备啥。然后看算法的时候又看到了快速排序,虽然以前看过好多遍快速排序,但始终没有自己写过,没有自个儿写过始终觉得心里不踏实。所以哇,不管怎么样今天还是来把快排写了吧。...

2020-07-31 16:54:15 117

原创 深圳建行金融科技实习offer(取舍)

昨天晚上突然收到了深圳建行金融科技实习意向邮件,内心既开心又焦虑,开心是因为经过一个多月的复习终于收获一个offer,虽然知识实习offer,但是依然感觉挺激动的,原来我也还是有人要的,可是焦虑的地方又在于,据网上有些人说深圳建行金融科技进去还得轮岗两年,也就是得做两年得基层柜员。想想就可怕,我一个做技术的(虽然现在技术还很菜)如果让搞两年的柜员那岂不是废了,而且这个实习是一个月(实习工资2000,不包食宿,这也太少了吧),据说如果表现好可以获得秋招免面试的机会,但还是得参加笔试,而且最主要得是今天都7月2

2020-07-29 18:02:50 1648

原创 7月28日:和为K的连续子数组

题目如下:题目看着不难,然后我第一个想到的就是暴力解法,直接双重循环。但是发现速度确实挺慢的,所以就看了一下官方的题解。我的理解是:新建一个hashmap,然后遍历数组,并将数组累加,将累加的结果放入hashmap中,如果hanshmap中存在当前累加减去目标数,则说明存在一个和为K的子数组。classSolution{publicintsubarraySum(int[]nums,intk){if(nums==null||nums.lengt...

2020-07-28 09:56:04 520

原创 7月28日:找到所有数组中消失的数字

题目如下:1.首先对于这种数组消失数字问题我想到的是用hashset将数组中的元素放进hashset中,由于hashset是不允许有重复元素的,所以放完以后再遍历1-n(因为题目说了,a[i]的范围在1-n之间),所以遍历1-n的过程中判断遍历的那个数是否在hashset中,如果不再则说明该数就是消失的数字。这个方法虽然简单,但是不太符合题目要求,因为题目要求不使用额外空间(题目是不建议使用hashset)2.不使用hashset,那我可以先将该数组排序哇,排完序再遍历1-n和排好序的数组对比,

2020-07-28 08:26:49 98

原创 7月28:路径总和III

题目如下:题解看了很久都看得不太懂,然后本来想放弃,可是感觉如果连这种题都放弃的话那秋招就真的没戏了,于实开始硬着头皮看代码。代码如下:/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(){}*TreeNode(intval)...

2020-07-28 07:03:43 166

原创 7月27日:字符串解码

题目如下:这个题思路不难,一般遇到这种括号问题,大多用栈来解决,遇到左括号进栈,遇到右括号出栈,但是写起来还是不容易哇,力扣中等难度还是中等难度,比简单题还是难不少。下面是实现代码:classSolution{publicStringdecodeString(Strings){StringBufferans=newStringBuffer();Stack<Integer>multiStack=newStack&...

2020-07-27 07:58:01 92

原创 7月27日:前K个高频元素

题目如下:经过这么多天的刷题以后,看到这道题目还是有思路的,毕竟遇到数组中求一个数的频率问题,首先肯定能想到用HashMap来统计频率。而要求前K问题很明显是得用堆排序。虽然HashMap容易写,但将它和堆结合以前没写过,所以哇,还是没有写出来(主要还是堆排序不太会写);可是在java中它有一个优先队列就实现了小顶堆的功能。代码如下:classSolution{publicint[]topKFrequent(int[]nums,intk){...

2020-07-27 07:34:18 69

原创 7月26日讨论关于String的不可变性质。

前几天和朋友相互面试(为了秋招作准备),然后它问了我一个问题,说说String和StringBuffer以及StringBuilder之间的区别。我回答的很官方,也可以说很浅显吧,因为关于那三者之间的联系和区别我也确实没有深究,知识按照面经题目上理解了三者的性质。String类是用final修饰,然后它底层是用final private char[] value实现的,所以它是不可变的,而StringBuffer由于用了锁机制所以它是线程安全的,StringBuilder由于没有用锁来约束,所以它是线程

2020-07-26 21:55:25 82

原创 7月26日:零钱兑换

题目如下:题目要求凑成总金额所需的最少的银币个数。当看到硬币个数最少时,我的大脑立马出现了条件反射。这不是要用动态规划来解题嘛(机智如我)。可是想了一会儿还是想不到状态转移方程。只好默默的打开题解,感觉题解的思路总是那么晦涩难懂,看着看着我就没了耐心,于是我开始看代码,通过看代码我感觉比看题解思路要容易理解,毕竟题解思路是别人的想法,想将别人的想法理解为自己的东西还是不太容易的,但是代码却是实实在在的东西。然后看代码看懂了就立马开始自己写一遍。一开始写完感觉差不多了,可是运行完成后答案总是0,搞

2020-07-26 07:17:47 85

原创 7月25日:最长上升子序列

题目如下: 经过一个多月的leetcode刷题,虽然很多题还是刷不明白,但是有些套路还是能够想到,比如这道题。题目要求求最长上升子序列。我一开始将题意看错了,题目要求的是最长上升子序列,我理解成立求最长连续上升子序列,还用到了双指针法,可是一直通过不了,后来仔细将我的输出结果和目标结果进行对比,才发现,原来题目所说的子序列并不要求序列得连续。 然后只好想其他方法了,看到最长让我想到了动态规划,动态规划的难点在于找到状态转移方程,可能还是我对动态规划理解的不到位吧,一时间还是想不到。然...

2020-07-25 07:11:44 89

原创 7月24:完全平方数

题目如下:思路:classSolution{publicintnumSquares(intn){intdp[]=newint[n+1];Arrays.fill(dp,Integer.MAX_VALUE);//bottomcasedp[0]=0;//pre-calculatethesquarenumbers.intmax_square_index=(int)Ma...

2020-07-24 11:58:52 138

原创 7月24日:回文链表

首先是题目:这道题被定义为简单题着实让我感到很意外,如果没有时间和空间复杂度限制的情况下确实是简单题,毕竟如果没有空间限制直接可以先遍历链表,然后将链表节点值用数组存起来,然后用个双指针去判断这个数组是否是回文数组即可。如果没有空间限制的话,我还想到了可以先将链表复制一份,然后将复制后的链表进行反转操作,然后遍历原始和反转后的链表,如果完全相等的话则说明这条链表是回文链表,如果有一个节点不相等则说明不是反转链表。我的代码如下:classSolution{publicLi...

2020-07-24 07:45:32 107

原创 7月24日:最大正方形

题目如下:如图题目所示是求一个矩阵中最大正方形面积的最大值。这让我想到了前些天刚做的求一片区域中所有海岛数量的题目,那道题是将问题转换成图搜索问题,用dfs(深度优先遍历法)来遍历图从而寻找出图中所有的海岛数量。所以我一开始也是尝试将这个问题转换成图搜索问题,可是找不到解决方法,然后就想到暴力法。暴力法由于正方形的面积等于边长的平方,因此要找到最大正方形的面积,首先需要找到最大正方形的边长,然后计算最大边长的平方即可。暴力法是最简单直观的做法,具体做法如下:遍历矩阵中的每个元素,每次

2020-07-24 06:56:10 131

原创 7月23日:装饰器模式和代理模式的区别

借用一本关于设计模式上的介绍来说说装饰器模式:初看上图感觉装饰器模式有点像俄罗斯套娃,而装饰器模式的核心就是在不改变原有类的基础上给类新增功能。不改变原有类,让大家想起了继承、AOP切面,当然这些方式都可以实现,但是使用装饰器模式会是另外一种更为灵活的思路,可以避免继承导致的子类过多,也可以避免AOP带来的复杂性。java中常用的装饰器模式应用场景new BufferedReader(new FileReader("")); 这段代码你是否熟悉,相信学习java开发到字节流、字符流...

2020-07-23 17:16:06 318

原创 7月23日:数组中第K大个元素

题目如下:这个题目还是算比较经典的吧,可能笔试的时候出现的不多,但是面试的时候问的可能会比较多。面试官虽然不会直接问数组中的第K个元素,但是他可能会问到:如果我手上有100w个数,我现在要快速找出第3大的数,如何最快实现呢?,通常我们首先能想到的是先对那100w个数进行排序,然后按照排序结果取第几个元素就可以了,所以这道题的重点是如何选取排序算法。一般对于这种找出最大或者最小的元素的问题,一般都是用堆排序算法来解决的,次之是快速排序。那么为什么使用堆排序对于这道题会更好呢?因为堆排序每次都是

2020-07-23 07:29:44 71

原创 7月23日:实现前缀树

题目如下:很明显这是一道关于设计数据结构的题目。但是本菜鸡拿到这道题目的第一想法就是用hashSet来存字符串,这样的话插入和查找字符串是否存在就比较方便了,但查前缀就变得有些麻烦,虽然麻烦但是还是可以完成前缀查询的。下面是菜鸡思路代码:classTrie{Set<String>hash;/**Initializeyourdatastructurehere.*/publicTrie(){hash=new...

2020-07-23 06:52:24 94

原创 7月22日:课程表

题目如下:这个题的题目叫做课程表,第一眼看这个题目会以为是数据库相关的题目,但实际上确实一道算法题。刚开始我拿到这道题的时候还是不太理解题意,然后过了几分中没有思路以后就直接打开了题解,看着题解都是直接按照图来解,也就是把这个题归纳成有向图的遍历问题,进而可以用拓扑排序思想来解题,拓扑排序也就是广度优先遍历算法。下面是它的题解下面是它的Java实现的拓扑排序代码:这个代码我也看了好几遍,可是并没有看懂,那是吃完饭之前做的一道题,当时看题解看得不太懂,然后心里就很不舒服,因为这样的

2020-07-22 23:13:09 120

原创 今日面试:深圳建设银行金融科技实习生

从一开始投简历到笔试到面试前前后后大概有一个多月吧,其实它给我发短信让笔试的时候我已经忘了我还投了深圳建行的实习生,不过既然笔试来了那就做一做吧,反正也不影响啥。大概三天前做的笔试,笔试题也还是蛮简单的,65道计算机基础题(大概包括了计算机专业的四门学位课还有计算机组成原理,感觉题型和当初做过的软件设计师考试上午题类似),65道题60分钟做完,一开始还有些怕时间不太够,结果昨晚发现还多十几分钟,然后我又回过头来检查了一遍,最后快到时间的时候提交了试卷,然后是107道行测题,30分钟昨晚,不过还好行测...

2020-07-22 17:24:15 1210 1

原创 今日题目:链表反转(leetcode简单题)

下面是题目:这道题目可以说是链表里面比较经典也可以说是比较简单的题目了,但是菜鸡的我还是自己独立写不出来,看来还是自己太菜了。下面是leetcode的上的官方解,官方给出了两种解题思路这种方法还是比较好理解的,毕竟它是直接通过迭代来实现反转的,比较直观,也就是遍历链表的每一个节点,遍历的同时对每个节点进行反转。递归的解法代码看起来都会比较简洁,但是代码可读性比较低,比较难懂。但是递归写多的话实际上和跌打是一样的,只不过递归的时候得搞清楚递归的终止条件,把递归的终止条件搞清楚了递归

2020-07-22 12:22:46 118

原创 今日题目:打家劫舍(经典动态规划题目)

题目描述如下:这是一道关于动态规划的简单题,虽说是简单题,但是关于动态规划的,看起来就有点恐惧,但看到这道题是简单题,顿时就觉得“天晴了,雨停了,我觉得我又行了”,然后就开始想关于他地动态递推公式,我一开始地想法是(由于题目要求小偷不能同时偷相邻两个房屋,所以我觉得递归公式是dp[i] = dp[i-2]+nums[i]),然后很快就写出了程序,可是提交地时候却没有通过最后还是没办法只有去看了题解:看来还是我理解的有问题,它的递推公式应该是dp[i] = max(dp[i-2]+nums

2020-07-22 10:47:40 204

原创 今日题目:乘积最大子数组

题目如下:第一次做这个题的时候想到的是暴力法,暴力法就直接用双重循环,依次遍历数组,然后挨个比较大小。然后又想到了双指针法,可是这道题目貌似双指针法和暴击解法没啥太大的差别。所以这样一想就放弃了,然后看了一下优秀的题解方法,在题解方法中大多数使用的都是动态规划思想,可是我看了半天还是不是很理解他们的那种动态规划算法思想。这是官方C++思路。它的动态规划转移方程为:动态规划的思想是当前状态可以由上一个状态得到,可是我的想法是题目不是要求乘积最大的连续子数组嘛,这样的转移方程能求

2020-07-22 07:04:01 116

原创 今日题目:排序链表

这段时间刷leetcode算法题给我刷的有点崩溃了,随着秋招时间一天一天临近了,然鹅我的算法题刷的依然是一塌糊涂,很多难点的算法题还是不会写,心里也越来越紧张。但还是得刷下去哇。 刚开始刷的两道链表中判断是否有环感觉还是挺简单的,很快就写出来了,然后刷到了链表的排序这道题,着实不太好懂。但是不好懂也得弄懂,没有办法,只能一步一步来了,下面就开始吧。题目要求时间空间复杂度分别为O(nlogn)O(nlogn)和O(1)O(1),根据时间复杂度我们自然想到二分法,从而联想到归并排序;对...

2020-07-21 11:14:37 116

原创 java中Map的赋值问题

今天刷题的时候,出现了一个问题。今天刷的题是这道题被leetcode定义为困难题,我第一眼想到的是先把L字符串数进行全排列,然后再用kmp字符串匹配算法对全排列后的字符串进行匹配,然后得出结果,然鹅细想发现,首先字符串的全排列算法一般用回溯法(然鹅回溯法并不是特别熟练),然后就是kmp算法了,这个算法有些难度,还是不太理解,所以最后还是放弃了,然后就想着看看别人写的算法能不能理解一下。下面是别人给出的一个算法解,虽然这个算法可能并不是最优解,但是这个算法还是算比较容易理解吧,毕竟我能理解(我

2020-07-19 07:55:47 8062

原创 记事本刷算法哇

【2020.7.5】LC148 Two-sum题目描述给出一个整数数组,请在数组中找出两个加起来等于目标值的数,你给出的函数twoSum 需要返回这两个数字的下标(index1,index2),需要满足index1 小于index2.。注意:下标是从1开始的假设给出的数组中只存在唯一解例如:给出的数组为 {2, 7, 11, 15},目标值为9输出 ndex1=1, index2=2我的想法很简单,直接暴力两次循环遍历,但它题目的标签是hashimport java.ut.

2020-07-05 07:33:45 138

原创 字节跳动笔试后的java笔记本算法编程--------javac不是内部或外部命令,也不是可运行的程序---------错误:找不到或无法加载主类

说干就干,直接用笔记本来撸代码,可是出问题了。。。真的难以置信,这都能出问题。问题是啥呢?就是如果我们用记事本编写完代码以后不是要编译然后运行程序嘛?一般都是这样的先javac main.java(先把java文件编译成字节码文件)然后java main(然后用java命令执行java字节码文件,运行java文件)。可是问题就出在这儿了,当我运行javac main.java的时候它居然提示,#######javac不是内部或外部命令,也不是可运行的程序,然后我以为是我的java环境出问题了

2020-07-04 21:43:25 141

原创 字节跳动笔试后的感悟

前些天投了字节跳动提前批,投完过了一天提示简历筛选完毕,然后短信和邮件发来了笔试邀请,本来我以为提前批内推过来的没有笔试,没想到还是有笔试,后来才知道,原来内推是简历非常厉害的才能免笔试(小菜鸡不配免笔试),然后没有办法哇,人家要笔试考我,别无他法,只有刷题咯,然后我找了leetcode的中的字节跳动专项来训练,说是训练,实际上由于时间来不及了(那个题库中差不多40道题),因为距离笔试只剩下1天时间不到了,所以直接看答案,答案看得倒是蛮快的,可是有点消化不良。终于在今天上午10点笔试开始了,字节跳动还是那个

2020-07-04 21:10:22 3188 2

原创 微服务中通用mapper遇到的问题

由于即将参加秋招,此时还没啥拿得出手得项目,所以想着跟着视频做一个java相关的微服务项目,微服务的思想不是很难懂,但是跟着视频的过程中经常出现各种各样意想不到的问题,最常见的就是依赖冲突问题,刚开始学习springcloud的时候就遇到了一个包和springboot依赖冲突导致@SpringBootApplication注解报错的问题,结果就是这样一个小问题折腾了我一个下午,本来感觉时间就非常紧了,居然还在这种问题上浪费了一个下午。然鹅那个问题解决以后今天上午又遇到一个让人很头痛的问题,一个微服务搭建完成

2020-06-29 12:00:04 923

原创 Intellij Idea导入maven项目后@Data注解不生效

昨天一个朋友让我帮他导入一个maven项目,那个项目的的依赖蛮多的,然鹅他们家网速挺慢的,所以一直等到今天早上才完全下载好依赖包,等依赖包下载完后,将项目部署到tomcat上,运行项目的时候报了一堆错误。看了一下错误,大致是由于实体类都没有getter()和setter()方法,但是一个项目的实体类怎么会没有getter()和setter()方法呢?不应该哇(由于以前没有用过@Data注解),当我打开报错实体类的时候确实发现他们都没有setter()和getter()方法,但是每个实体类上面都有@Dat

2020-06-22 07:47:50 1767 1

原创 把数组排成最小的数(遇到的一个小问题)

刚刚在写剑指offer中的把数组排成最小的数,首先说说我的思路吧,因为不久前曾做过字符串的全排列这道题,所以对它还有印象,然后又碰到这个把数组排成最小的数这道题,比较两题你会发现,假如把数组元素看作是字符,那么整个数组就可以看成是一个字符串了,所以本质上两道题可以用同一种思路来做。然后我就按照字符串的排列思路来做这道题,他们唯一不同点在于一个是把字符串分成字符,然后对字符进行排列,另一个是把几个字符串进行排列(把数组里的整数变成字符串),下面是代码package 剑指offer;import

2020-06-21 11:14:55 96

原创 字符串踩过的坑

某天写算法题(字符串的排列)import java.util.ArrayList;import java.util.Collections;/** * 输入一个字符串,按字典序打印出该字符串中字符的所有排列。 * 例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 */public class 字符串的排列 { private ArrayList<String> list = new ArrayLis

2020-06-21 07:52:17 88

原创 顺时针打印矩阵(直接算法)

这是一道很经典的题目(顺时针打印矩阵),每次做这道题就让我想起来当初大一的时候刚学c语言那会儿,那时候对编程无比痴迷,每次写代码都写很久,现在感觉已经失去了那份痴迷很久了。那下面步入正题吧!!!顺时针打印矩阵,其实这和我们玩过的一种游戏很相似--------贪食蛇,特别是以前的诺基亚手机那会,如下一个矩阵:1 2 3 45 6 7 89 1011 121314 15 16这样一个矩阵:它顺时针打印的话就是:[1, 2, 3, 4, ...

2020-06-19 20:39:40 340

原创 填坑——拓扑排序

拓扑排序很早以前就接触过了,大概是在本科二年级的时候,然鹅现在已经研三了,过去太久了,所以只对这个名词挺熟悉,对它的算法都忘的差不多了,但是昨天面试的腾讯实习,面试官突然问到这个问题,面试之前还是复习过十大经典排序算法,可是拓扑排序确实没有复习过,所以现在决定填坑。把拓扑排序的知识点补起来。 首先,拓扑排序并非真的排序,这一点是基础,当时我被问到拓扑排序的时候第一个想到的就是排序,但是当时复习的十大排序算法中并没有拓扑排序,从而导致面试的时候进一步的慌张。下面是拓扑排序的百度词条定义。...

2020-06-18 07:40:16 133

原创 腾讯2020后台暑期实习一面试试水。感觉还是挺难的。

前段时间看到腾讯有后台实习,本来以为是日常实习,所以就抱着试试的心态投递了我那单薄的简历,没想到过了一个星期居然收到了腾讯打来的电话,可惜,当时中午的时候我在学习,我一般学习的时候大部分时间手机都是开的免打扰,所以就理所应当的错过了腾讯的这个面试安排电话,等我发现的时候已经过了一个小时,然后我就尝试打了过去,它那是座机电话,应该是公司专用的,所以只能他打给我,然后我就赶紧搜别人遇到这种情况会怎么样,查到的都是说这次面试机会就没有了,顿时心里就感觉挺可惜的,然后心里还安慰自己(可能还是和腾讯无缘吧)...

2020-06-17 18:51:47 1470 1

原创 从基础的排序算法开始哇!!!

首先是冒泡排序,算法的思想很简单,假如给我们一个乱序的数组 arr:{1,5,6,2,3,9,4,8,7,10},冒泡排序的思想顾名思义,就是把最大的数或者最小的数往排序的方向冒泡,假如是从小到大排序,所以得做两层嵌套for循环,每次都把最大的数移动到最右边。代码如下...

2020-06-11 21:52:02 87

原创 Linux Ubuntu下安装私有git服务器

今天学习javaweb git版本控制技术,卯足劲儿跟着视频一步一步地学习git的各种应用(包括windows下的创建仓库和远程仓库的连接),一开始都没啥问题,当学到搭建私有git服务器的时候突然出现了莫名奇妙的问题。因为搭建私有git服务器的时候要用到Linux系统,而刚好今年win10更新后直接自带Ubuntu子系统,所以为了方便我就直接在Ubuntu子系统上安装git服务器。首先是准备阶段:如图这条命令运行了好多遍,都显示这很明显是yum的问题,然后我就想法设法安装和更新yum软件

2020-06-10 21:38:21 384

空空如也

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

TA关注的人

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