shendezhuti
码龄9年
关注
提问 私信
  • 博客:158,424
    158,424
    总访问量
  • 116
    原创
  • 904,473
    排名
  • 31
    粉丝
  • 0
    铁粉

个人简介:本科湖南大学电子科学与技术学士学位 正攻读美国乔治华盛顿大学计算机硕士学位

IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:浙江省
  • 加入CSDN时间: 2016-05-29
博客简介:

黄小鑫的博客

博客描述:
大神都是从菜鸟一步步转变而来的
查看详细资料
个人成就
  • 获得57次点赞
  • 内容获得38次评论
  • 获得99次收藏
创作历程
  • 3篇
    2021年
  • 24篇
    2020年
  • 88篇
    2019年
  • 8篇
    2018年
  • 10篇
    2017年
  • 15篇
    2016年
成就勋章
TA的专栏
  • 计算机网络
    29篇
  • 笔试面试
    4篇
  • 密码学
    1篇
  • 数据库
    17篇
  • CMU15213计算机组成原理
    14篇
  • Web前端开发
    2篇
  • Web后台开发
    7篇
  • Java
    29篇
  • 算法与数据结构
    27篇
  • Android
    5篇
  • 数据库
    19篇
  • 计算机网络
    29篇
  • 计算机组成原理
    23篇
  • 各种配置问题
    2篇
兴趣领域 设置
  • 大数据
    mysqlredis
  • 后端
    spring
  • 服务器
    linux
创作活动更多

如何做好一份技术文档?

无论你是技术大神还是初涉此领域的新手,都欢迎分享你的宝贵经验、独到见解与创新方法,为技术传播之路点亮明灯!

357人参与 去创作
  • 最近
  • 文章
  • 代码仓
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

Java函数式编程

函数式编程的定义函数式编程是一种编程的范式,他将计算视为函数的运算,避免变化状态和可变数据。他是一种声明式编程范式,也就是说,编程是用表达式或者声明而不是语句来完成的。Lamda 表达式 : (a,b) -> a + b比起指令式的编程,函数式编程更加强调程序执行的结果而不是执行的过程,倡导利用若干个简单的执行单元让计算结果不断渐进,逐层推导复杂的运算userList.stream().skip(1).peek(uer -> log.debug("user:{}", user.g
原创
发布博客 2021.02.08 ·
189 阅读 ·
0 点赞 ·
2 评论 ·
0 收藏

Java实现消息摘要算法加密

消息摘要算法MD(Message Digest) SHA(Secure Hash Algorithm) MAC(Message Authentication Code) 验证数据完整性 数字签名核心算法消息摘要算法-MDMD5 MD家族(128位摘要信息)MD5应用消息摘要算法-SHA 安全散列算法 固定长度摘要信息 ...
原创
发布博客 2021.02.03 ·
181 阅读 ·
0 点赞 ·
1 评论 ·
0 收藏

密码学初识

1.前言转专业同学对于密码学可能了解都比较少,在慕课网上看到了一门课,简单讲了一下密码学以及在Java中相关的使用。特此做一个学习笔记2.密码常用术语明文:待加密的信息密文:经过加密后的明文加密:明文转化为密文的过程加密算法:明文转化为加密的算法加密密钥:通过加密算法进行操作加密的密钥解密:将密文转化为明文的过程解密算法:将密文转化为明文的算法解密密钥:通过解密算法进行解密操作的密钥密码分析:截获密文者通过分析截获的密文从而推断出原来的明文或密钥的过程主.
原创
发布博客 2021.02.03 ·
439 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

阿里淘系21春招实习过经

阿里巴巴闲鱼部门一面 3.17日晚9 (60分钟)1.项目(20分钟)秒杀系统如何解决超卖问题(sql语句count>0才会减库存)2.redis能否用来做消息队列3.redis中有哪些数据结构4.redis为什么快5.IO多路复用是指什么6.为什么redis是单线程,单线程的好处6.什么是同步和异步7.redis的持久化机制8.数据库Innod...
原创
发布博客 2020.04.20 ·
347 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

腾讯PCG事业部后台实习开发过经(已拿offer)

前提:我只学过Java,所以面试官没问过我任何c++的东西,甚至Java的一些知识点也没怎么问。基本都是项目+算法+一点网络腾讯PCG事业部一面 3.17日晚10点40(80分钟)1.手撕代码(二分搜索、反转链表),这个真的难度一般,直接秒了2.ES实现的原理是什么3.项目你这个秒杀地址接口到底是干嘛的?为什么要把这个秒杀地址的信息放入redis?实际上是把秒杀产品放...
原创
发布博客 2020.04.10 ·
1491 阅读 ·
1 点赞 ·
0 评论 ·
3 收藏

UCBCS188 AI学习笔记(2)informed search (启发函数搜索)

搜索的启发函数启发函数是什么?一个估计离重点还有多少距离的函数。 为特殊的搜索问题设计 例子:曼哈顿距离,欧几里得距离贪心搜索策略:扩展你认为最接近距离的结点通常情况:最快的带你走向一个错误的目标最差情况:像一个没有错误指令的DFSA*搜索算法会将当前已走过的代价结合启发函数一起决定如何扩展结点。可以这么理解 A* = UCS + Greedy...
原创
发布博客 2020.03.28 ·
781 阅读 ·
1 点赞 ·
0 评论 ·
0 收藏

小菜找实习——阿里3月27日场笔试第一题

题目描述小强现在可以将任何一个字符串的一位以O(1)的代价移到末尾现在给定一个字符串S,字符串T。求问最少用几次可以将S以上述的方法移动变成T样例输入acdkckad样例输出2将a移到最后变成cdka,将d到最后变成ckad一开始去想求公众最长子序列,然后以字符串的长度减去这个序列长度,差点把自己写死。最后也没跑过,那时候心态有点小崩。(后来做完和大家...
原创
发布博客 2020.03.27 ·
535 阅读 ·
1 点赞 ·
2 评论 ·
2 收藏

动态规划实战16 leetcode-198. House Robber

确定状态:dp[i]表示歹徒抢到第i个房子时候最大收益对于一个歹徒来说:到第i个房子不抢,那么在此时他的收益就是到i-1个房子时候的收益第i个房子抢了,那么最大收益就是抢第i个房子的收益加上抢到第i-2个房子收益和。状态转移方程dp[i] = max{dp[i-1] , dp[i-2]+nums[i-1] }初始条件和边界条件dp[0]=0dp[1]=nums...
原创
发布博客 2020.03.27 ·
144 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战15 leetcode-256. Paint House

确定状态:这个题其实和之前的那个阿里矩阵题是一样的,只不过是状态转移方程稍有不同,paint house就是把相邻的情况排除了。dp[i][j]代表从0paint到i号房子,在i号房子涂j号色时用的最少costs。因此状态转移方程如下dp[i][j] = dp[i][j] + min{ dp[i-1][k]} 其中k=1....m 且k!=j初始条件和边界条件dp[i][...
原创
发布博客 2020.03.27 ·
198 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战14 leetcode-312. Burst Balloons

这道题目是hard类题,笔者表示没碰到过第一次遇到真的很难写出来。首先如果用暴力搜索的方法,对每种情况进行搜索判断,那么需要有n*n-1*n-2*....*1 = n! 显然这样的时间复杂度太高那么接下来想到的就是如何用dp去解决问题。如何确定状态和找出状态转移方程一直是dp问题的难点,这道题也不例外。确定状态c[i][j] = maxCoins(nums[i] - nums[...
原创
发布博客 2020.03.27 ·
133 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战13 leetcode-121. Best Time to Buy and Sell Stock

前言:这道题目实可以用 Kadane's Algorithm解决对于kadane's algorithm 我们可以这么想,假设输入是[7,1,5,3,6,4]那么我们可以通过这个数组得到在每一天前买 后一天卖的数组(称收益数组) [-6,4,-2,3,-2]实际上这样就转换成了什么问题?没错!maximum subarray!我们只要求收益数组的maximum subar...
原创
发布博客 2020.03.26 ·
122 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

小菜找实习——阿里3.25场笔试第一题(矩阵数组最小差值和)

明天晚上就要笔试了,又有新的原题来参考练手了,这道题如果不知道viterbi算法可能通过dp有点难做出来。所以说学习是永无止境的hhh!图源自牛客论坛上(话说他们是怎么截图的,难道这样不算作弊吗,不太懂笔试的规则)输入描述45 9 5 4 44 7 4 10 32 10 9 2 3输出描述5确定状态Viterbi算法是说每到一个状态就记录下到当前状态的最...
原创
发布博客 2020.03.26 ·
718 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

动态规划实战12 leetcode-472. Concatenated Words

这道题目实际上可以用到之前的leetcode139中的算法word break我们先对words数组排序,排序的目的是减少后续的比较然后在每次循环里面直接判断当前的words[i]是不是可以由字典里面的数字组成。注意我们写代码的顺序,要等每次判断某个words[i]是否可以拆分 再把这个字符加入到字典里面。class Solution { public static Li...
原创
发布博客 2020.03.25 ·
183 阅读 ·
0 点赞 ·
0 评论 ·
1 收藏

动态规划实战11 leetcode-64. Longest String Chain

前言:这道题和阿里3.20笔试第二题有点像,等这类题熟悉后,去增加那道题的DP写法。这道题的思路是这样的(摘自别人的blog)如果想组成链,必须找到一个比当前字符串长度小一的字符串,没有的话,以当前字符为结尾的链长最大只能为1。基于这个思路,我们先建立一个Map lengthMap,用于存储每种长度的字符串有哪些。 接下来,再新建一个Map,用来存储以每个字符串为结尾的最长链的长度。...
原创
发布博客 2020.03.25 ·
157 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战10 leetcode-64. Minimum Path Sum

确定状态dp[i][j]表示在第i-1行第j-1列最大的path sum值状态转移方程dp[i][j] = dp[i][j] (i=0 and j =0) dp[i][j]+dp[i][j-1] (i=0 and j!=0) dp[i][j]+dp[i-1][j] (i!=0 and j=0) d...
原创
发布博客 2020.03.25 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战9 leetcode-91. Decode Ways

前言:这个题如果没有做过 我感觉要想到状态转移方程还是有点难度的。确定状态最后一步:实际上我个人认为这个题的难点就是最后一步要理解好。每次新增一个数字,我们其实都要考虑1.新增的一个数字单独作用 增加多少种可能2.新增的一个数字与前面的一个数字加起来一起作用 增加多少种可能因此 dp[i]代表 到第i个数字有多少种decode ways状态转移方程dp[i] = 0...
原创
发布博客 2020.03.24 ·
115 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战8 leetcode-53. Maximum Subarray

确定状态这道题难就在确定状态。因为根据给定的输入,我们可能在中间找到最大值,而不是在最后找到最大值。但是我们可以用一个变量去保存全局的最大值dp[i]表示从下标0至下标i最大的子序列和状态转移方程dp[i] = max(dp[i-1]+nums[i],nums[i])\初始条件和边界条件dp[0] = =nums[0]计算的顺序dp[0] ..... dp[n-...
原创
发布博客 2020.03.24 ·
118 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战7 leetcode-221. Maximal Square

前言:这道题目我感觉确定状态反而是比较难的一件事确定状态设dp[i][j]代表到i行,j列的最大的正方形边长因为某一个点的最大正方形边长实际上是受他左边的点,上面的点,以及左上角的点影响的。我们知道,该点为右下角的正方形的最大边长,最多比它的上方,左方和左上方为右下角的正方形的边长多1,最好的情况是是它的上方,左方和左上方为右下角的正方形的大小都一样的,这样加上该点就可以构成一个更...
原创
发布博客 2020.03.24 ·
123 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战6 leetcode-139. Word Break

确定状态最后一步:我们判断从0开始到最后一个字符的整一个字符串是否breakable,检查这个字符串中的substring是否在dict中,并且除掉substring的那一部分是否也可以breakable。dp[i]表示0至i的字符串是否可以word break状态转移方程dp[i] = IsSubstringindict(j,i)&&dp[j] (其中j=i.....
原创
发布博客 2020.03.24 ·
140 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏

动态规划实战4-leetcode 5.Longest Palindromic Substring

确定状态:最长的子串,减去两边的字符也一定是palindromedp[i][j] 代表以i开始,以j结束的字符串是不是palindrome状态转移方程:dp[i][j]=s.charAt(i)==s.charAt(j)&&(j-i+1<3||dp[i+1][j-1]);这种存在性的转移方程有点难写 笔者就直接写程序的表达了初始条件和边界条件没...
原创
发布博客 2020.03.23 ·
100 阅读 ·
0 点赞 ·
0 评论 ·
0 收藏
加载更多