视频面试笔试题——不断更新中

   日期:2020-08-04     浏览:99    评论:0    
核心提示:美团北斗计划推荐算法工程师一面——2020.08.03 15:00小水题,但要求必须A掉,主要考虑下进位和链表翻转即可。当然可以不用vector,直接把两个链表反转后模拟就行,但我不太喜欢写链表。class Solution {public: /** * * @param head1 ListNode类 .
  • 美团北斗计划推荐算法工程师一面——2020.08.03 15:00

小水题,但要求必须A掉,主要考虑下进位链表翻转即可。当然可以不用vector,直接把两个链表反转后模拟就行,但我不太喜欢写链表。



class Solution {
public:
    
    ListNode* addInList(ListNode* head1, ListNode* head2) {
        vector<int>a,b;
        ListNode *now=head1;
        while(now!=NULL){
            a.push_back(now->val);
            now=now->next;
        }
        now=head2;
        while(now!=NULL){
            b.push_back(now->val);
            now=now->next;
        }
        vector<int>ans;
        int len1=(int)a.size()-1, len2=(int)b.size()-1;
        int pre=0;
        while(1){
            int cnt=0;
            if(len1==-1&&len2==-1){
                if(pre)ans.push_back(1);
                break;
            }
            else if(len1==-1){
                cnt=b[len2]+pre;
                len2--;
            }
            else if(len2==-1){
                cnt=a[len1]+pre;
                len1--;
            }
            else {
                cnt=a[len1]+b[len2]+pre;
                len1--;
                len2--;
            }
            if(cnt>9){
                pre=1;
                cnt=cnt%10;
            }
            else 
                pre=0;
            ans.push_back(cnt);
        }
        ListNode *new_head=new ListNode(ans[0]);
        ListNode *p=new_head;
        for(int i=1;i<(int)ans.size();i++){
            ListNode *node= new ListNode(ans[i]);
            p->next=node;
            p=p->next;
        }
        ListNode *pre_node=NULL;
        while(new_head){
            ListNode *reverse_node=new_head->next;
            new_head->next=pre_node;
            pre_node=new_head;
            new_head=reverse_node;
        }
        return pre_node;
        // write code here
    }
};
 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服