9.14小米笔试C++

编程题

ps:前面的选填记不到了

T1 链表反转

没啥好说的,就简单的链表反转一下,经典题目了

#include <iostream>
#include <vector>
#include <numeric>
#include <limits>
#include <stack>

using namespace std;

template <class Type> class ListNode {
public:
    Type data;
    ListNode<Type> *next;
};

class Solution {
public:

    /* Write Code Here */
    ListNode < int > *reverseBetween(ListNode<int> *head, int left, int right) {
        ListNode<int> *p1,*p2;
        ListNode<int> *p3 = new ListNode<int>();
        p3->next = head;
        p1 = p2 = p3;
        int i = 1;
        while(i < left && p1)  {
            i++;
            p1 = p1->next;
        }
        ListNode<int> *p4 = p1;
        p1 = p1->next;
        i = 1;
        while(i <= right && p2)  {
            i++;
            p2 = p2->next;
        }
        stack<ListNode<int> *> St;
        while(p1 != p2) {
            St.push(p1);
            p1 = p1->next;
        }
        p4->next = p1;
        p2 = p2->next;
        p4 = p4->next;
        while(St.size()) {
            p4->next = St.top();
            St.pop();
            p4 = p4->next;
        }
        p4->next = p2;
        return head;
    }
};
int main() {
    ListNode < int > *res = NULL;

    int head_size = 0;
    cin >> head_size;

    ListNode<int> *head = NULL, *head_curr = NULL;
    int head_item;
    for(int head_i=0; head_i<head_size; head_i++) {
        cin >> head_item;

        ListNode<int> *head_temp = new ListNode<int>();
        head_temp->data = head_item;
        head_temp->next = NULL;
        if (head == NULL) {
            head = head_curr = head_temp;
        } else {
            head_curr->next = head_temp;
            head_curr = head_temp;
        }
    }

    int left;
    cin >> left;



    int right;
    cin >> right;



    Solution *s = new Solution();
    res = s->reverseBetween(head, left, right);
    while (res != NULL) {
        cout << res->data << " ";
        res = res->next;
    }
    cout << endl;

    return 0;

}

T2 二叉搜索树转为双向链表

这里有点小意外,因为这里题目没有提供输入输出(CPP),于是我直接输入后排序输出了,不过貌似也通过了

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
using namespace std;

#define int long long

signed main()
{
    vector<int> Vec;
    int x;
    while(cin>>x)
        Vec.push_back(x);
    sort(Vec.begin(),Vec.end());
    int n = Vec.size();
    if(n == 0)  {
        printf("0");
        return 0;
    }
    for(int i = 0;i < n; ++i) cout<<Vec[i]<<" ";
    for(int i = n - 1;i >= 0; --i) cout<<Vec[i]<<" \n"[i==0];

    return 0;
}
#笔试题型##C/C++##关于秋招我想说##小米笔试##秋招以来你最大的收获是什么#
全部评论
你已获得挂件,若想替换可在此话题继续发布获得新挂件。
点赞 回复
分享
发布于 2022-10-20 21:08

相关推荐

#软件开发2024笔面经#&nbsp;笔试地址:赛码笔试时间:3/23&nbsp;18:00-19:30笔后感觉:低于90无入围可能?【听说是小米最后一次笔试,可能没有hc了】试题评价:难度:中下,考的内容较为综合,数据结构(二叉树遍历)、算法认识(贪心、排序)、操作系统进程调用计算(FCFS)、数据模拟、SQL&nbsp;等(其他记不清了)关于语言:C++/Java/Python 都有【C++独户做起来懵逼:比如 Java 的 >>>&nbsp;运算符?】题目分布:单选(15)多选(10)编程(2)编程题:难度偏低试题一参考:小D是一名老师,他想选出一些同学床架一个团体比赛,总共有n个同学,每个同学有一个能力值x和一个合作制y,小D将这小同学拍成一排,选人规则如下:小D将选择一排中连续的K个同学参加比赛,而且为例保证成绩,者K个同学的能力值不能小于a,合作值不能小于b。小D想知道总共有多少种可能的选人方案。输入描述第一行四个正整数n,k,a,b第二行n个通过空格隔开的正整数表示一排n个同学的能力值。第三行n个通过空格隔开的正整数表示一排n个同学的合作值。输出描述:输出一个非负数表示选人的方案数试题二参考:天帝被愚公的诚心感动,命令手下的仙人帮助移山。然而仙人的法术也是有局限性的,山势连绵起伏,法术并不能直接把山一走。每次施法,可以把一段连续区域的汕头一走相同的高度。现在愚公想知道什么时候会有至少一个山头高度小于等于0.给出一个长度为n的数组和m表示山头的高度和可以施法的次数,每次施法还会给出左右断点L,R和高度h,表示将al到ar减去h。问在那次操作时候会存在ai小于等于0输入描述:第一行两个数字n和m表示山头数量和施法次数第二行n个数,分别表示山的高度接下来m行,每行3个数字L,R,h表示依次具体的施法参数输出描述:一个整数代码参考地址【比较简单】#小米##笔试##小米24春招#&nbsp;&nbsp;小米笔试开发岗低于90无入围可能?【代码参考】_牛客网 https://www.nowcoder.com/discuss/601133831730569216
投递小米集团等公司7个岗位 软件开发2024笔面经
点赞 评论 收藏
转发
相互自我介绍实习经历,项目深挖&nbsp;30min左右&nbsp;疯狂对线new&nbsp;Integer(10)&nbsp;==&nbsp;new&nbsp;Integer(10)&nbsp;相等吗&nbsp;&nbsp;常量池String&nbsp;是可变的吗,为什么要设计为不可变(忘了)说一下HashMap&nbsp;数据库结构&nbsp;和&nbsp;一些重要参数为什么是2次幂&nbsp;到什么时候开始扩容&nbsp;扩容机制流程&nbsp;有哪些线程安全的map,ConcurrentHashMap怎么保证线程安全的,为什么比hashTable效率好说一下为什么项目中使用线程池,重要参数,举个例子说一下这些参数的变化协程和线程和进程的区别&nbsp;(说了jdk17)synchronized&nbsp;和lock区别&nbsp;&nbsp;synchronized锁升级过程&nbsp;&nbsp;公平锁和非公平锁&nbsp;lock怎么现实一个非公平锁为什么redis快,淘汰策略&nbsp;&nbsp;持久化mysql:聚簇索引和非聚簇索引区别索引怎么设计才是最好的事务传播(这个不会&nbsp;面试官给讲了例子&nbsp;但是确实没准备这一块protected&nbsp;和private&nbsp;加事务会生效吗,还有那些不生效的情况tcp(本以为是三握四挥)怎么保证顺序的&nbsp;不会http&nbsp;https区别&nbsp;https流程手撕:两个链表相加&nbsp;15min&nbsp;让写核心代码&nbsp;最后讲思路问:对小米这个公司感觉如何面评:基础可以,很多问题没有总结到位&nbsp;&nbsp;很诚实不会的直接说不会(凉凉)面试官好评,很多不会问题会引导你讲解,但是很多次我都没给他机会引导&nbsp;我直接说不会,太长时间每面了都忘完了
点赞 评论 收藏
转发
3 8 评论
分享
牛客网
牛客企业服务