蔚来今年的校招薪资。。。

前段时间小米造车确实火了,PPT也讲了好久,不过到现在为止雷军都没有公布其价格,不知道在犹豫啥。曾经有网友在微博上问他价格,雷军回到:“50万以内,有对手吗?”,很多网友评论只要敢超过30万,绝对完蛋。

6815d146e0e38f08cbf44bd483199f23.png

不知道小米汽车的具体价格,本来打算参考蔚来看下,结果发现蔚来竟然造手机了,官网查了一下,发现7000多,价格还不低。现在有点懵了,造手机的去造车,造车的又去造手机。你跨行也就算了,关键是你跨行的产品卖的都很贵,这个就有点让人匪夷所思了。。。

4e5cf3b63b8f91421cb27dbd1ec87a16.png

看完了蔚来的手机价格,我们再来看下蔚来今年的校招薪资(这里只统计IT行业的,数据来源OfferShow),整体来看的话还是不错的,校招薪资基本上都能达到30w以上,其中搞算法的薪资是最高的,基本上都能达到40w以上,可以看下。

7c708802a323269a38644fc02c7ace33.jpeg

db9049ec290f1376b26ce26e0124a355.jpeg

0ba987bd9b6aa2ed67b562cba3dd2f26.jpeg

c02fd8d3c1a37f73d5f2d6a928680321.jpeg

91f186ad728fe1d43d182e9d94b7c66f.jpegac055641638c6a4dc7ea14ec2d7837f6.jpeg

e2f564fc85ddb680b6f4fa9854a7b2ca.jpeg

--------------下面是今天的算法题--------------

看完了蔚来的校招薪资,我们今天来看一道蔚来的算法题,这题是LeetCode的第83题:删除排序链表中的重复元素,这题非常简单,我们来看下。

问题描述

来源:LeetCode第83题

难度:简单

给定一个已排序的链表的头 head , 删除所有重复的元素,使每个元素只出现一次 。返回 已排序的链表 。

示例1:

37a03655bc2aabc023eb549cf445107f.jpeg

输入:head = [1,1,2]

输出:[1,2]

示例2:

a0f1851412ed52025f6026a66a52a252.jpeg

输入:head = [1,1,2,3,3]

输出:[1,2,3]

  • 链表中节点数目在范围 [0, 300] 内

  • -100 <= Node.val <= 100

  • 题目数据保证链表已经按升序排列

问题分析

这题说的是在一个排序的链表中,如果有重复元素,就把重复的节点删除,使重复的节点只出现一次。

这题和我们前面讲的删除排序链表中的重复元素 II非常类似,前面一道题如果有重复的必须把重复的全部删除,这题如果有重复的,还要保留一个。

所以这题相对来说更加简单,因为题中说了是排序的链表,所以如果有重复的元素,他们肯定是挨着的。我们遍历节点的时候都要和下一个节点比较,如果有相同的直接删除即可。

JAVA:

public ListNode deleteDuplicates(ListNode head) {
    ListNode cur = head;
    while (cur != null) {
        // 当前节点和下一个节点相同,就把下一个节点给删除。
        while (cur.next != null && cur.val == cur.next.val)
            cur.next = cur.next.next;
        cur = cur.next;// 继续判断后面的节点。
    }
    return head;
}

C++:

public:
    ListNode* deleteDuplicates(ListNode* head) {
        ListNode* cur = head;
        while (cur) {
            // 当前节点和下一个节点相同,就把下一个节点给删除。
            while (cur->next && cur->val == cur->next->val)
                cur->next = cur->next->next;
            cur = cur->next;// 继续判断后面的节点。
        }
        return head;
    }

C:

struct ListNode* deleteDuplicates(struct ListNode* head) {
    struct ListNode* cur = head;
    while (cur) {
        // 当前节点和下一个节点相同,就把下一个节点给删除。
        while (cur->next && cur->val == cur->next->val)
            cur->next = cur->next->next;
        cur = cur->next;// 继续判断后面的节点。
    }
    return head;
}

Python:

def deleteDuplicates(self, head: Optional[ListNode]) -> Optional[ListNode]:
    cur = head
    while cur:
        # 当前节点和下一个节点相同,就把下一个节点给删除。
        while cur.next and cur.val == cur.next.val:
            cur.next = cur.next.next
        cur = cur.next  # 继续判断后面的节点。
    return head

8634bca822710c59c50527e14d33495d.gif

笔者简介

博哥,真名:王一博,毕业十多年,《算法秘籍》作者,专注于数据结构和算法的讲解,在全球30多个算法网站中累计做题2000多道,在公众号中写算法题解700多题,对算法题有自己独特的解题思路和解题技巧,喜欢的可以给个关注,也可以下载我整理的1000多页的PDF算法文档。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数据结构和算法

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值