首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
LifelongCode
获赞
2660
粉丝
851
关注
29
看过 TA
1509
男
西北工业大学
2022
后端
IP属地:广东
微信公众号【LifelongCode】
私信
关注
拉黑
举报
举报
确定要拉黑LifelongCode吗?
发布(174)
评论
刷题
收藏
LifelongCode
关注TA,不错过内容更新
关注
2021-05-24 21:46
已编辑
西北工业大学 后端
JZ65:矩阵中的路径
不确定第一个字母的初始位置,遍历寻找一遍,找到初始位置,设置访问数组,通过一系列条件判断 import java.util.*; public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @param matrix char字符型二维数组 * @param word string字符串 * @return bool布尔型 */ public boolean hasPath (char[][] matrix, String word) { // write code here if(matrix.length==0 ...
剑指Offer题解
0
点赞
评论
收藏
分享
2021-02-08 23:11
已编辑
西北工业大学 后端
NC147:主持人调度
解法1:优先级队列 首先:要对活动进行排序: 开始时间相等的,结束时间从小到大 开始时间不相等的,开始时间从小到大 其次:建立一个优先级队列:默认升序,同时处理活动 只提供结束时间,如果当前的开始时间小于队首的结束时间,说明没空闲 如果当前的开始时间大于队首的结束时间,说明可以空闲一个,队首出队 最后返回队列长度 import java.util.*; public class Solution { public int minmumNumberOfHost (int n, int[][] startEnd) { // 排序,头相等的,尾从小到大 // 头不相等的头从小到大 Array...
年底不被裁就算成功:
优先级队列那个有点问题 问题再sort排序那里,return arr1[1] - arr2[1] 这里不能这么写 比如当arr1[1] = MAX_VALUE arr2[1] = MIN_VALUE时会越界导致排序出现异常,可以改一下 return arr1[1] > arr2[1] ? 1 : -1 下面的也是一样
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-05 16:08
西北工业大学 后端
NC130:分糖果问题
解法1:左右各遍历一次 把所有孩子的糖果数初始化为 1; 先从左往右遍历一遍,如果右边孩子的评分比左边的高,则右边孩子的糖果数更新为左边孩子的 糖果数加 1; 再从右往左遍历一遍,如果左边孩子的评分比右边的高,且左边孩子当前的糖果数不大于右边孩子的糖果数,则左边孩子的糖果数更新为右边孩子的糖果数加 1。 通过这两次遍历, 分配的糖果就可以满足题目要求了。 import java.util.*; public class Solution { /** * pick candy * @param arr int整型一维数组 the array * @return int整型 */ public...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-05 15:38
西北工业大学 后端
NC85:拼接所有的字符串产生字典序最小的字符串
举例: strs = [“abc”, “de”],可以拼接成 “abcde”,也可以拼接成 “deabc”,但前者的字典顺序更小,所以返回 “abcde” strs = [“b”, “ba”],可以拼成 “bba”,也可以拼成 “bab”,但前者的字典顺序更小,所以返回 “bab”。 基本思路: 有一种思路为:先把strs中的字符串按照字典顺序排序,然后将串起来的结果返回。这么做是错误的,例如【举例】中的第二条,按照字典顺序排应该是b、ba,串起来的结果是bba,但是正确答案是bab。所以这个思路行不通。正确的排序方式如下: 假设两个字符分别是a,b。a和b拼起来的字符串表示为a.b...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 22:11
西北工业大学 后端
NC139:孩子们的游戏
解法1:List模拟环形链表 最开始长度为n,每次删除一个数,长度变为n-1,如果用数组模拟操作的话,删除一个数据,涉及大量的数据搬移操作,所以我们可以使用链表来模拟操作。 public int LastRemaining(int n, int m){ LinkedList<Integer> list=new LinkedList<>(); if(m<1 || n<1){ return -1; } for(int i=0;i<n;i++){ list.add(i); } int bt=0; while(list.size()>1){ bt=(bt...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 17:54
西北工业大学 后端
NC32:求平方根
解法1:根据平方数的性质——连续n个奇数相加的结果一定是平方数。 如:9=1+3+5;16=1+3+5+7;所以,不断的进行奇数相加,并判断x大小即可 public class Solution { public int sqrt(int x) { int i=1; int res=-1; while(x>=0){ x=x-i; res++; i=i+2; } return res; } }解法2:二分法 public class Solution { public int sqrt(int x) { if (x<2) return x; int left = 1; int rig...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 16:41
已编辑
西北工业大学 后端
NC156:数组中只出现一次的数(其它数出现k次)
解法1:排序 public int foundOnceNumber(int[] arr, int k) { Arrays.sort(arr); for(int i = 0; i<arr.length-1; i++){ if(arr[i]==arr[i+1]){ i += k-1; }else{ return arr[i]; } } return arr[arr.length-1]; }解法2:位运算 出现k次就不能再用异或的方法了,因为k(奇数)个相同的数异或还是得到本身。但是还是可以采用位运算的思想,因为出现k(奇数)次的数字每个位(0或者1)也是出现k(奇数)次,因此可以每一位的和...
CodeParty:
如果是负数呢,第二种算法是不是就不行了
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 15:26
西北工业大学 后端
NC115:栈和排序
读入数据:第i个数出栈满足字典序最大,一定是i+1到n中最大的一个数用一个数组maxs存i-n之间最大的数按照读入顺序入栈,如果当前入栈第i个数字比将要入栈的剩余元素都要大 那么这个元素出栈因为让入栈的第i个元素,比将要入栈的i+1到n的元素都大时出栈,总能保证字典序最大 public class Solution { /** * 栈排序 * @param a int整型一维数组 描述入栈顺序 * @return int整型一维数组 */ public int[] solve (int[] a) { // write code here int n=a.length; int[] maxs=n...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 14:37
西北工业大学 后端
NC90:设计getMin功能的栈
维护两个栈,一个输入栈,一个辅助栈,辅助栈用于存储当前栈中的最小值。因为pop一定是从栈顶出栈的,所以在辅助栈中后入栈的最小值影响不到先入栈的最小值。出栈时,输入栈和辅助栈一起出,因为辅助栈栈顶的最小值是相对于输入栈栈顶而言的。 import java.util.*; import java.util.Stack; import java.util.ArrayList; public class Solution { /** * return a array which include all ans for op3 * @param op int整型二维数组 operator * @retu...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 14:32
西北工业大学 后端
NC76:用两个栈实现队列
队列的特性是:“先入先出”,栈的特性是:“先入后出”思路:固定栈1入队,栈2出队。pop() 操作时, (1)如果两栈都为空,报异常; (2)如果出队栈有元素就出队; (3)如果出队栈为空,就把入队栈的元素都弹过来再出队。 import java.util.Stack; public class Solution { Stack<Integer> stack1 = new Stack<Integer>(); Stack<Integer> stack2 = new Stack<Integer>(); public void push(int n...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-04 14:26
西北工业大学 后端
NC45:实现二叉树先序,中序和后序遍历
题解 List<Integer> pre = new ArrayList<>(); List<Integer> in = new ArrayList<>(); List<Integer> post = new ArrayList<>(); public int[][] threeOrders (TreeNode root) { // write code here if (root == null) return new int[][] {{}}; List<List<Integer>> ans =...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-03 22:15
西北工业大学 后端
NC142:最长重复子串
可以将两个字符串想像成两个连续的滑动窗口,并假设这个滑动窗口最大是字符串长度的一半,通过比较两个窗口的内容是否相同,不相同的时候不断从左向右平移,完了之后,还是不相同,这时候就将窗口的大小调小一点,直到找到一个相同的,这个时候窗口的长度×2就是最大字符串的大小 public int solve (String a) { // write code here if (a == null || a.length() <= 1) return 0; char[] chars = a.toCharArray(); int len = chars.length; int maxLen = cha...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-03 21:52
已编辑
西北工业大学 后端
NC55:最长公共前缀
作者:LeetCode-Solution链接:https://leetcode-cn.com/problems/longest-common-prefix/solution/zui-chang-gong-gong-qian-zhui-by-leetcode-solution/ 解法1:对字符串数组进行排序,然后只要比较首尾两个字符串即可 import java.util.*; public class Solution { public String longestCommonPrefix(String[] strs) { if(strs == null || strs.length == 0...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-03 21:21
西北工业大学 后端
NC28:最小覆盖子串
解法1:滑动窗口 转载链接:https://leetcode-cn.com/problems/minimum-window-substring/solution/hua-dong-chuang-kou-ji-bai-liao-100de-javayong-hu-/思路:新建一个needs[255] 用来统计t中每个字符出现次数,新建一个 window[255]用来统计滑动窗口中每个字符出现次数。首先统计出T中每个字母出现的次数. 新建两个变量left和right分别用来表示滑动窗口的左边和右边。新建一个变量count来表示目前窗口中已经找到了多少个字符。以S = "ADOBECODEBANC"...
名企高频面试算法题解
0
点赞
评论
收藏
分享
2021-02-03 21:04
西北工业大学 后端
NC17:最长回文子串
解法1:暴力解法 直接判断每一个子串是不是回文子串,然后取其中最长的值返回 public class Palindrome { public int getLongestPalindrome(String A, int n) { int maxLen = 0; //暴力解法 for(int i = 0; i < n; i++){ for(int j = i+1; j <= n; j++){ String now = A.substring(i,j); if(isPalindrome(now) && now.length() > maxLen){ maxLen ...
名企高频面试算法题解
0
点赞
评论
收藏
分享
1
6
7
8
9
10
12
创作者周榜
更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务