算法_leetcode-字节跳动
1、两数之和
class Solution {
public:
vector twoSum(vector& nums, int target) {
for(int i=0;
i
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;
}
};
【算法_leetcode-字节跳动】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小的字符串(回溯)
推荐阅读
- 画解算法(1.|画解算法:1. 两数之和)
- Guava|Guava RateLimiter与限流算法
- 一个选择排序算法
- SG平滑轨迹算法的原理和实现
- 《算法》-图[有向图]
- 二叉树路径节点关键值和等于目标值(LeetCode--112&LeetCode--113)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 虚拟DOM-Diff算法详解
- 《数据结构与算法之美》——队列
- 算法回顾(SVD在协同过滤推荐系统中的应用)