网易互娱笔试4.11 服务端 1,2,4AC

第一题,九进制加法,先小数点左右添0对齐
class Solution {
public:
    /**
     * 接收两个表示9进制数的字符串,返回表示它们相加后的9进制数的字符串
     * @param num1 string字符串 第一个加数
     * @param num2 string字符串 第二个加数
     * @return string字符串
     */
    string add(string num1, string num2) {
        // write code here
        stack<char> value;
        int i=findDot(num1);
        int j=findDot(num2);
        int n1=num1.size(),n2=num2.size();
        int ls=i;
        if(i!=j){
            if(i>j){
                ls=i;
                num2=string(i-j,'0')+num2;
            }else if(i<j){
                ls=j;
                num1=string(j-i,'0')+num1;
                
            }
        }
        int rs=n1-i;
        if((n2-j)!=(n1-i)){
            if((n2-j)>(n1-i)){
                rs=n2-j;
                num1=num1+string(n2-j-n1+i,'0');
            }else if((n2-j)<(n1-i)){
                num2=num2+string(n1-i-n2+j,'0');
            }
        }
        int len=ls+rs;
        string s(len,'0');
        int jin=0;
        for(int i=len-1;i>=0;i--){
            if(num1[i]=='.'){
                s[i]='.';
            }else{
                s[i]=ninePlus(num1[i],num2[i],jin);
            }
        }
        if(jin==1){
            s=string(1,'1')+s;
        }
        return s;
    }
    int findDot(string &s){
        for(int i=0;i<s.size();i++){
            if(s[i]=='.'){
                return i;
            }
        }
        return s.size();
    }
    char ninePlus(char &a,char&b, int &jin){
        int res=a+b-'0'-'0'+jin;
        if(res>=9){
            res=res-9;
            jin=1;
        }else{
            jin=0;
        }
        return res+'0';
    }
};

第二题,分配任务
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
    int N;
    cin>>N;
    vector<int> work(N,0);
    vector<int> plan(N,0);
    for(int i=0;i<N;i++){
        int tmp;
        cin>>tmp;
        work[i]=tmp;
    }
    for(int i=0;i<N;i++){
        int tmp;
        cin>>tmp;
        plan[i]=tmp;
    }
    int M;
    cin>>M;
    sort(work.begin(),work.end());
    sort(plan.begin(),plan.end());
    long long res=1;
    int count=0;
    for(int i=0;i<N;i++){
        for(int j=count;j<N;j++){
            if(work[i]>=plan[j]){
                count++;
            }else{
                break;
            }
        }
        res=res*(count-i)%M;
    }
    cout<<res<<endl;
    return 0;

}

第四题,快递箱
class Solution {
public:
    /**
     * 
     * @param boxes int整型二维数组 
     * @param boxesRowLen int boxes数组行数
     * @param boxesColLen int* boxes数组列数
     * @return int整型
     */
    vector<vector<int>> num;
    int maxBoxes(int** boxes, int boxesRowLen, int* boxesColLen) {
        // write code here
        if(boxesRowLen==0) return 0;
        for(int i=0;i<boxesRowLen;i++){
            vector<int> tmp(*boxesColLen,0);
            for(int j=0;j<*boxesColLen;j++){
                tmp[j]=boxes[i][j];
            }
            num.push_back(tmp);
        }
        sort(num.begin(),num.end());
        vector<long long>dp(boxesRowLen,1);
        long long result=1;
        for(int i=1;i<num.size();i++){
            for(int j=0;j<i;j++){
                int flag=true;
                for(int k=0;k<num[i].size();k++){
                    if(num[i][k]<=num[j][k]){
                        flag=false;
                        break;
                    }
                }
                if(flag==true){
                    dp[i]=max(dp[i],dp[j]+1);
                }
            }
            result=max(result,dp[i]);
        }
        return result;
    }
};
四道A三道还是不错的,可谁知道我今天面试快排都没写出来
#网易互娱##笔试题目#
全部评论
做了三题,2.8游戏组队那个没有思路,写了一大堆,然后感觉还不如不做,心态崩了
1 回复 分享
发布于 2020-04-11 21:50
大佬
点赞 回复 分享
发布于 2020-04-11 21:46
我第三题最后差一个排序,不然也可能ac了,心态炸裂
点赞 回复 分享
发布于 2020-04-11 21:48
快排还是得看算导, 我觉得我明白了然而代码还是要靠背
点赞 回复 分享
发布于 2020-04-11 22:08
蹲一个第三题AC代码
点赞 回复 分享
发布于 2020-04-11 22:09
第四题看见了两个70%,可能忽略了这种情况,比如排序后是2 3 3,5 4 4,6 1 1, 5 4 4装的最多,所以尽管有序,最后一个箱子能打包的也不一定是最多的
点赞 回复 分享
发布于 2020-04-11 22:12
楼主,可以麻烦你解释下第二题的思路吗?
点赞 回复 分享
发布于 2020-04-12 23:40

相关推荐

Aki-Tomoya:窝趣,人家这是先富带动后富,共同富裕了属于是
投递英伟达等公司6个岗位
点赞 评论 收藏
分享
野猪不是猪🐗:是我导致的,我前天对力扣进行了跨站脚本攻击,网站把我的请求给block了(胡言乱语)
点赞 评论 收藏
分享
评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客企业服务