leetcode-第十七周

来源:互联网 发布:网王之数据涟漪了 编辑:程序博客网 时间:2024/05/24 04:20

445. Add Two Numbers II

/** * Definition for singly-linked list. * struct ListNode { *     int val; *     ListNode *next; *     ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {private:    ListNode* reverse(ListNode *a) {        ListNode *last = nullptr;        for (; a; ) {            ListNode *nxt = a->next;            a->next = last;            last = a;            a = nxt;        }        return last;    }public:    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {        l1 = reverse(l1);        l2 = reverse(l2);        int carry = 0;        ListNode *ret = nullptr, **p = &ret;        while (l1 || l2 || carry) {            int l = l1? l1->val: 0, r = l2? l2->val: 0;            int val = (l + r + carry) % 10;            carry = (l + r + carry) / 10;            if (l1) l1 = l1->next;            if (l2) l2 = l2->next;            *p = new ListNode(val);            p = &((*p)->next);        }        return reverse(ret);    }};

451. Sort Characters By Frequency

class Solution {public:    string frequencySort(string s) {        unordered_map<int, int> mp;        for (auto c: s) mp[c]++;        sort(s.begin(), s.end(), [&mp](const char &a, const char &b) {            if (mp[a] == mp[b]) return a < b;            else return mp[a] > mp[b];        });        return s;    }};
原创粉丝点击