首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
搜索
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
代码界的小白
获赞
8984
粉丝
9633
关注
25
看过 TA
2.0W
男
门头沟学院
2026
后端工程师
IP属地:陕西
微信搜索公众号:代码界的小白
私信
关注
拉黑
举报
举报
确定要拉黑代码界的小白吗?
发布(444)
评论
刷题
收藏
代码界的小白
关注TA,不错过内容更新
关注
2022-01-10 10:01
门头沟学院 后端工程师
题解 | #计算器(一)#
题目主要信息 1、给定一个表达式求值 2、字符串中的有效字符包括[‘0’-‘9’],‘+’,‘-’,‘(’, ‘)’ 3、字符串一定合法 4、可能出现多个数字连在一起组成多位数 5、可能出现负数 方法一:利用栈求解 具体方法 我们可以用o1来储存当前符号,具体定义为 +,o1=1,-,o1=-1 我们通过表达式res=num1+o1×num2来保存当前算式,其中num1为已经计算部分的值,而num2是正在计算部分的值,num1和num2中间由+-隔开 当遇到数字时,我们直接获取数字,并且计算o2,获得num2 当遇到+-时,代表前面的公式已经计算完毕,计算num1,并更新o1,o2,num2 ...
0
点赞
评论
收藏
分享
2022-01-13 21:00
已编辑
门头沟学院 后端工程师
题解 | #跳跃游戏(三)#
题目主要信息 1、给定一个非负整数数组nums,数组里面的每个元素代表下一跳能够跳跃的最大长度 2、判断最少跳几次能跳到数组最后一个位置 3、若无法跳到最后一个位置,返回-1 方法一:反向查找 具体方法 这道题是典型的贪心算法,通过局部最优解得到全局最优解。我们的目标是到达数组的最后一个位置,因此我们可以考虑最后一步跳跃前所在的位置,该位置通过跳跃能够到达最后一个位置。 如果有多个位置通过跳跃都能够到达最后一个位置,那么我们应该如何进行选择呢?直观上来看,我们可以「贪心」地选择距离最后一个位置最远的那个位置,也就是对应下标最小的那个位置。因此,我们可以从左到右遍历数组,选择第一个满足要求的位置...
0
点赞
评论
收藏
分享
2022-01-13 21:01
已编辑
门头沟学院 后端工程师
题解 | #长度最小的连续子数组#
题目主要信息 1、给定一个数组 nums 和一个正整数 target 2、找出满足和大于等于 target 的长度最短的连续子数组 方法一:暴力解法 具体方法 由于本题中数据不大,因此可以采取暴力解法。 计算所有i开始,j结尾的数组的和,若大于target,则计算其长度并和最小值进行比较。 Java代码 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param nums int整型一维数组 * @param target int整型 * @return ...
0
点赞
评论
收藏
分享
2022-01-07 20:10
已编辑
门头沟学院 后端工程师
【代码界的小白】2021年回忆录!(附互联网求职经验分享~)
最近几天比较忙,忙着签约,忙着做志愿者,忙着投小论文,今天结束志愿者活动后打算对自己的2021年做一个总结吧,希望我的总结可以帮助到更多和我有一样经历的牛友。 2021年总结主要围绕以下几个点来分享吧。 1、备战找工作 2、论文中期开题 3、成为预备党员 4、投递小论文 5、参加志愿者 1、备战找工作 知识准备 我想此时此时的很多牛友和我去年的这个时候是一样的心情吧,就是慌的一批! 去年的这个时候,我才刚从算法转开发自学不到俩月吧,2020年11月底开始学习Java,到去年的这个时候,才刚学完Java基础相关的内容。 从算法转到开发的一个很大原因也是感觉自己找算法岗没有任何的竞争力,虽然有些比...
0
点赞
评论
收藏
分享
2022-01-13 21:18
已编辑
门头沟学院 后端工程师
题解 | #单词拆分(一)#
题目主要信息 1、给定一个字符串和一个字符串数组 2、判断字符串能否拆分成若干个字符串符合字符串数组的子集 方法一:动态规划 具体方法 可以使用动态规划的方法,dp[i]表示以第i个字符结尾的字符串是否满足该条件。 因此当字符串从i到j的子字符串属于字符串数组时,满足dp[i]=dp[i-j]。 Java代码 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @param dic string字符串一维数组 * @r...
0
点赞
评论
收藏
分享
2022-01-17 11:09
已编辑
门头沟学院 后端工程师
题解 | #字符串解码#
题目主要信息 给一个加密过的字符串解码,返回解码后的字符串。 加密方法是:k[c] ,表示中括号中的 c 字符串重复 k 次,例如 3[a] 解码结果是 aaa ,保证输入字符串符合规则。不会出现类似 3a , 3[3] 这样的输入。 方法一:使用栈 具体方法 本题中可能出现括号嵌套的情况,比如 2[a2[bc]],这种情况下我们可以先转化成 2[abcbc],在转化成 abcbcabcbc。我们可以把字母、数字和括号看成是独立的 TOKEN,并用栈来维护这些 TOKEN。具体的做法是,遍历这个栈: 如果当前的字符为数位,解析出一个数字(连续的多个数位)并进栈 如果当前的字符为字母或者左...
0
点赞
评论
收藏
分享
2022-01-04 23:24
门头沟学院 后端工程师
题解 | #编辑距离(一)#
题目主要信息 1、给两个字符串str1,str2 2、每个字符串可以通过替换、增添、删除来进行修改,每次修改需要1次编辑距离 3、求最小编辑距离使得两个字符串相等 方法一:字符串比较 具体方法 编辑距离是一类非常经典的动态规划的题目。 我们使用dp[i][j]表示字符串A的前i个字符与字符串B的前j个字符相同所需要的编辑距离。 首先需要进行状态的初始化,当一个字符串为空时,编辑距离等于另一个字符串的长度 对于状态转移方程,需要分两种情况讨论: 第一种情况,a[i]==b[j],这种情况下,我们不需要进行编辑,dp[i][j]=dp[i-1][j-1] 第二种情况,a[i]!=b[j],如果两个...
0
点赞
评论
收藏
分享
2022-01-13 21:02
已编辑
门头沟学院 后端工程师
题解 | #二叉树的后序遍历#
本题主要信息 1、给定一个二叉树,返回他的后序遍历的序列。 2、后序遍历是值按照 左节点->右节点->根节点 的顺序的遍历。 方法一:递归 具体方法 按照访问左子树——右子树——根节点的方式遍历这棵树,而在访问左子树或者右子树的时候,我们按照同样的方式遍历,直到遍历完整棵树。因此整个遍历过程天然具有递归的性质,我们可以直接用递归函数来模拟这一过程。 定义 postorder(root) 表示当前遍历到 root 节点的答案。按照定义,我们只要递归调用 postorder(root->left) 来遍历 root 节点的左子树,然后递归调用 postorder(root->...
0
点赞
评论
收藏
分享
2022-01-04 16:29
门头沟学院 后端工程师
终于签约想去的公司了!正式结束找工作!
Marchair_:
刷牛客,感觉人人都被华子捞了...本菜逼真的愈发焦虑...只能再准备准备春招😭😭
校招记录
0
点赞
评论
收藏
分享
2022-01-03 19:25
门头沟学院 后端工程师
题解 | #下一个排列#
题目主要信息 1、给出一个数组的排列 2、找到该数组的下一个排列,使得新数组是大于该数组的最小数组 方法一:两次扫描 具体方法 注意到下一个排列总是比当前排列要大,除非该排列已经是最大的排列。我们希望找到一种方法,能够找到一个大于当前序列的新序列,且变大的幅度尽可能小。具体地: 我们需要将一个左边的「较小数」与一个右边的「较大数」交换,以能够让当前排列变大,从而得到下一个排列。 同时我们要让这个「较小数」尽量靠右,而「较大数」尽可能小。当交换完成后,「较大数」右边的数需要按照升序重新排列。这样可以在保证新排列大于原来排列的情况下,使变大的幅度尽可能小。 以547532为例,我们需要将其排序...
0
点赞
评论
收藏
分享
2022-01-02 23:49
门头沟学院 后端工程师
题解 | #循环右移二叉树#
题目主要信息 1、给一棵n个节点构成的二叉树 2、将每一层的节点向右循环位移k位 3、从最下一层开始位移,从下往上一次进行 方法一:层次遍历+循环移位 具体方法 由于是按照每一层的节点进行循环移位,因此我们可以首先进行树的层次遍历,得到每一层的结构。 按照题目要求,从最小面一层开始位移,为了确定移动之后的父节点,我们需要对每一行的所有节点的位置进行标记,通过index来进行保存,为了保证移动后位置的正确性,我们需要保留父节点的空子节点位置的index。 在获得index之后,我们可以通过对index值的计算,获得移动后的index,以及移动后的父节点,并且可以根据index奇偶值来判断为父节点...
0
点赞
评论
收藏
分享
2022-01-01 08:30
门头沟学院 后端工程师
2021圆满了!在2021年的最后一天,收获几个好消息。1、自己参加了疫情防控志愿者2、再次收获华为offer3、成为牛客“网红”具体的故事待我在后面一一与大家道来!2022新的开始,希望牛客的牛友们都可以顺利找到工作,2022我会在牛客继续给大家分享更多更好的干货内容!喜欢我的记得点个赞、收藏和关注哦!
AAA海产批发老王:
“再次”
投递华为HUAWEI等公司9个岗位
0
点赞
评论
收藏
分享
2022-02-17 10:09
已编辑
门头沟学院 后端工程师
题解 | #修剪叶子#
题目主要信息 1、给一个n个节点的二叉树 2、不可以直接删除叶节点,只能修改叶节点的父节点 3、保留尽可能多的节点 方法一:递归遍历方法 具体方法 为了保留尽可能多的树节点,采用贪心的方式,只删除所有叶结点的父节点。 对于一个要删除的节点,它的特点是,存在有为叶节点的子节点。我们通过遍历树,判断该节点的子节点是否需要删除,如果需要删除,则置为null,即可删除。 Java代码 import java.util.*; /* * public class TreeNode { * int val = 0; * TreeNode left = null; * TreeNode right = nu...
0
点赞
评论
收藏
分享
2021-12-31 20:36
门头沟学院 后端工程师
题解 | #盛水最多的容器#
题目主要信息 1、给出一个数组,表示点的高度 2、找出最大的两条线所组成的容器的大小 方法一:双指针 具体方法 我们设两个指针i,j,指向的线高度分别为h[i], h[j],因此我们可以将面积S表示出来如下图所示 而在每种状态下,无论长板或短板向中间收窄一格,都会导致水槽宽度-1: 若向内移动短板,水槽的短板可能变大,因此面积可能增加 若向内移动长板,水槽的短板不会变大,面积只可能减小 因此,循环每轮将短板向内移动一个,并更新面积最大值,直到两个指针相遇,即可得到最大值。 正确性证明 若暴力枚举,水槽两板围成面积 S(i,j)的状态总数为 C(n,2)。 假设状态 S(i,j)下 h[i]...
0
点赞
评论
收藏
分享
2022-02-17 09:53
已编辑
门头沟学院 后端工程师
题解 | #买卖股票的最好时机(四)#
买卖股票最佳时机 题目主要信息 假设你有一个数组prices,长度为n,其中prices[i]是某只股票在第i天的价格,请根据这个价格数组,返回买卖股票能获得的最大收益 你最多可以对该股票有kk笔交易操作,一笔交易代表着一次买入与一次卖出,但是再次购买前必须卖出之前的股票 如果不能获取收益,请返回0 假设买入卖出均无手续费 方法一:动态规划 具体方法 对于买卖股票无外乎就两种状态,买和卖,因此我们可以设置存储两种状态的数组,一组存买入buybuybuy,一组存卖出sellsellsell。 用buy[i][j]buy[i] [j]buy[i][j]表示对数组 prices[0...i]pr...
0
点赞
评论
收藏
分享
1
11
12
13
14
15
30
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务