美文网首页
算法_leetcode-字节跳动

算法_leetcode-字节跳动

作者: Hengry | 来源:发表于2020-10-25 00:02 被阅读0次

1、两数之和

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        for(int i=0; i<nums.size(); i++)
        {
            for(int j=i+1; j<nums.size(); j++)
            {
                if(nums[i] + nums[j] == target)
                    return {i,j};
            }
        }
        return {};
    }
};

2、反转一个单链表

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
 
class Solution {
public:
    ListNode* reverseList(ListNode* head) {
        struct ListNode *newHead = NULL;
        struct ListNode *node;
        while (head != NULL) {
            //1. 对之前的链表做头删
            node = head;
            head = head->next;
            
            //2. 对新链表做头插
            node->next = newHead;
            newHead = node;
        }
        return newHead;
    }
};

3、合并两个有序链表

将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。

示例:
输入:1->2->4, 1->3->4
输出:1->1->2->3->4->4

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode() : val(0), next(nullptr) {}
 *     ListNode(int x) : val(x), next(nullptr) {}
 *     ListNode(int x, ListNode *next) : val(x), next(next) {}
 * };
 */
class Solution {
public:
    ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) {
        struct ListNode *head= new ListNode(-1);
        struct ListNode *newNode = head;
        while(l1 != NULL&&l2 != NULL){
            if(l1->val<=l2->val){
            newNode->next=l1;
            l1=l1->next;
            }else{
            newNode->next=l2;
            l2=l2->next;
            }
            newNode = newNode->next;
        }
        
        newNode->next = l1== NULL? l2:l1;
        
        return head->next;
    }
};

4、【LeetCode191题】编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 ‘1’ 的个数(也被称为汉明重量)。

class Solution {
public:
    int hammingWeight(uint32_t n) {
        int res=0;
        while(n>0)
        {
            res++;
            n=n&(n-1);
        }
        return res;
    }
};

利用位运算解LeetCode191题:位1的个数

5、【leetcode 1415】长度为n的开心字符串中字典序第k个的字符串(回溯)

class Solution {
public:
    string s,res;
    int cnt=0;
    string getHappyString(int n, int k) {
        dfs(n,k);
        return cnt==k?res:"";
    }

    void dfs(int n, int k){
        if(cnt==k)
            return;
        if(s.size()==n){
            res=s;
            cnt++;
            return;
        }   
        for(char q='a';q<='c';q++){
            if(s.size()&&s.back()==q) continue;
            
            s.push_back(q);
            dfs(n,k);
            s.pop_back();
        }
    }
};

长度为n的开心字符串中字典序第k小的字符串(回溯)

相关文章

  • 算法_leetcode-字节跳动

    1、两数之和[https://leetcode-cn.com/problems/two-sum/] 2、反转一个单...

  • 字节跳动算法实习面试

    两面字节跳动+openday面试经 达达 二面题目(部门技术面): 1、你知道这边是什么情况?之前面试官有跟你提起...

  • 记一次ACM实战

    算法哈,你咋这么骚! 一篇推文撩拨了资深码农的心弦。为了圆ACM梦,报了字节跳动的主办的《字节跳动冬令营网络赛》。...

  • 字节跳动面试算法题 一堆火柴棒长度的序列,切分成不下降的火柴棒长

    [TOC] 同学问我一个字节跳动的面试的算法问题 昨晚我的一个同学问了我下面这个问题,说是字节跳动面试的题目: 一...

  • 机会是留给有准备的人的

    字节跳动第一批笔试因为不知道,没有报,直接错过了字节跳动第二批笔试终于知道了,报了,发现题型是五道算法题,颇有难度...

  • 字节跳动Ailab | 算法面经

    先介绍一下笔者自身背景:双非本,top5硕士,研究方向是对话系统和Text2SQL,2段创业公司实习经历,若干NL...

  • Fastbot-Android遍历测试

    前言 此博客参考字节跳动技术团队分享,在此由衷感谢!Fastbot算法原理介绍:https://mp.weixin...

  • 字节跳动2022校招/实习 内推

    ★【字节跳动|秋招|提前批|全岗位可投】●内有面试/简历建议 字节跳动 22 届校招研发提前批启动! 字节跳动20...

  • 字节跳动

    现实的棍棒,一点一点趋使着我们要成长,人总是会选择性的遗忘掉岁月中留下的伤,而苦累的生活,慢慢的会打磨去曾经那股登...

  • 字节跳动

    春节期间,徐峥导演的《囧妈》在网络上免费播出,引得很多人对徐峥的做法大加赞赏。那么对于购买了这部电影的字节跳动公司...

网友评论

      本文标题:算法_leetcode-字节跳动

      本文链接:https://www.haomeiwen.com/subject/pokgmktx.html