本来时间是7:00-9:00,但鼠鼠8:05才进来,单选多选直接一通连蒙带骗10分钟整完,主要做了三道编程题:100 100 931.lc61旋转链表,mid原题,这次赶时间直接用了golang,golang内置的list非常适合首尾移位操作,加个虚拟头节点避免麻烦事[喝可乐](AC)package mainimport "container/list"type ListNode struct { Val  int Next *ListNode}/** * Note: 类名、方法名、参数名已经指定,请勿修改 * * * 旋转链表 * @param head ListNode类 * @param k int整型 * @return ListNode类 */func Rotate(head *ListNode, k int) *ListNode { // write code here nodeList := list.New() p := head for p != nil {  nodeList.PushBack(p)  p = p.Next } listLen := nodeList.Len() k = k % listLen for i := 0; i < k; i++ {  ele := nodeList.Back()  nodeList.MoveToFront(ele) } //虚拟头 phead := &ListNode{  Val:  0,  Next: nil, } p = phead for nodeList.Len() > 0 {  ele := nodeList.Front()  nodeList.Remove(ele)  nextNode := ele.Value.(*ListNode)  p.Next = nextNode  p = p.Next } p.Next = nil return phead.Next}2.小写字母翻转,保持单词相对位置不变,其余非小写字母位置不变,如“Shoppee 1a3c abc”,应翻转为"Seepph 1c3a cba",先用空格分割,再对单个单词进行处理。Java内置的String类封装的各种方法比较方便,并且拼接时注意使用StringBuilder提高性能(AC)class Solution {    /**     * Note: 类名、方法名、参数名已经指定,请勿修改     * <p>     * <p>     * 反转字符串中的小写字母,并且保证单个单词的顺序不变,其他字符的位子不变     *     * @param original_str string字符串     * @return string字符串     */    public String reverses(String original_str) {        // write code here        String[] strings = original_str.split(" ");        StringBuilder builder = new StringBuilder();        for (String str : strings) {            builder.append(getReverseLowStr(str));            builder.append(" ");        }        builder.deleteCharAt(builder.length() - 1);        return builder.toString();    }    private String getReverseLowStr(String str) {        StringBuilder sb = new StringBuilder();        StringBuilder strBuilder = new StringBuilder(str);        for (int i = 0; i < str.length(); i++) {            char ch = str.charAt(i);            if (ch >= 'a' && ch <= 'z') {                sb.append(ch);            }        }        sb.reverse();        String s = sb.toString();        int point = 0;        for (int i = 0; i < str.length(); i++) {            char ch = str.charAt(i);            if (ch >= 'a' && ch <= 'z') {                strBuilder.setCharAt(i, s.charAt(point));                point++;            }        }        return strBuilder.toString();    }}3.lol英雄价格数组,原始点券有限,问最多能买多少个英熊,注意返回买了哪些点卷,返回购买的点卷数组。不能重复买,这JB一眼01背包,这不直接双层dp?外层物品,内层倒序容量。正准备用双层dp秒,结果想了想,dp解决01背包只能求个数,他让我把具体哪个列出来,搞得鼠鼠我头大,时间剩的不多了,后面转念一想,干脆回溯爆搜算了,也是用golang省了写题时间,这B语言写工程有种吃shi的感觉,写个算法题倒可以少写不少东西(93%,代码没问题,应该是后7%超时了,欢迎大家指导剪枝方式)package mainimport "fmt"/** * Note: 类名、方法名、参数名已经指定,请勿修改 * * * 根据价格列表和当前点券数,计算出能买到的最多英雄 * @param costs int整型 一维数组 英雄点券价格列表 * @param coins int整型  拥有的点券 * @return int整型一维数组 */var result []intvar max intvar record []intfunc solution(costs []int, coins int) []int { // write code here result = make([]int, 0) record = make([]int, 0) max = 0 n := len(costs) backtrack(0, n, costs, coins, 0) return record}func backtrack(index int, n int, costs []int, coins int, now int) { if index >= n || now >= coins {  if now <= coins {   if len(result) > max {    max = len(result)    record = make([]int, 0)    for i := 0; i < len(result); i++ {     record = append(record, result[i])    }   }  } else {   if len(result)-1 > max {    max = len(result) - 1    record = make([]int, 0)    for i := 0; i < len(result)-1; i++ {     record = append(record, result[i])    }   }  }  return } //0算上,1不算 for i := 0; i < 2; i++ {  if i == 0 {   now += costs[index]   result = append(result, costs[index])   backtrack(index+1, n, costs, coins, now)   result = result[:len(result)-1]   now -= costs[index]  } else {   backtrack(index+1, n, costs, coins, now)  } }}func main() { arr := make([]int, 0) arr = append(arr, 2) arr = append(arr, 1) arr = append(arr, 3) arr = append(arr, 4) arr = append(arr, 5) res := solution(arr, 10) fmt.Println(res)}今天的笔试大家参加了吗,欢迎大家来多多交流,特别是第三题,对于暴力回溯的剪枝方式以及dp解决01背包如何把拿了哪些物品列出而不是只列最大价值。大佬牛子们请多多指导![赞]也希望可以再拿些面试机会练练手[面试必过]
点赞 13
评论 10
全部评论

相关推荐

投递京东等公司10个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-11 17:39
小呆呆的大鼻涕:卧槽,用户彻底怒了
点赞 评论 收藏
分享
06-20 17:42
东华大学 Java
凉风落木楚山秋:要是在2015,你这简历还可以月入十万,可惜现在是2025,已经跟不上版本了
我的简历长这样
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务