给你一个非负整数 num ,请你返回将它变成 0 所需要的步数。 如果当前数字是偶数,你需要把它除以 2 ;否则,减去 1 。
示例 1:
输入:num = 14
输出:6
解释:
步骤 1) 14 是偶数,除以 2 得到 7 。
步骤 2) 7 是奇数,减 1 得到 6 。
步骤 3) 6 是偶数,除以 2 得到 3 。
步骤 4) 3 是奇数,减 1 得到 2 。
步骤 5) 2 是偶数,除以 2 得到 1 。
步骤 6) 1 是奇数,减 1 得到 0 。
示例 2:
输入:num = 8
输出:4
解释:
步骤 1) 8 是偶数,除以 2 得到 4 。
步骤 2) 4 是偶数,除以 2 得到 2 。
步骤 3) 2 是偶数,除以 2 得到 1 。
步骤 4) 1 是奇数,减 1 得到 0 。
示例 3:
输入:num = 123
输出:12
提示:
0 <= num <= 10^6
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-steps-to-reduce-a-number-to-zero
class Solution { public: int numberOfSteps(int num) { int count=0; while(num!=0){ if(num%2==0){ num/=2; }else{ num-=1; } count++; } return count; } };题目二: 移除链表元素
给你一个链表的头节点 head 和一个整数 val ,请你删除链表中所有满足 Node.val == val 的节点,并返回 新的头节点 。
示例 1:
输入:head = [1,2,6,3,4,5,6], val = 6
输出:[1,2,3,4,5]
示例 2:
输入:head = [], val = 1
输出:[]
示例 3:
输入:head = [7,7,7,7], val = 7
输出:[]
提示:
列表中的节点数目在范围 [0, 104] 内
1 <= Node.val <= 50
0 <= val <= 50
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-linked-list-elements
class Solution { public: ListNode* removeElements(ListNode* head, int val) { if(head==nullptr) return head; ListNode* dumyNode=new ListNode(-1); dumyNode->next=head; ListNode* p=dumyNode; while(p->next!=nullptr){ if(p->next->val==val){ p->next=p->next->next; }else{ p=p->next; } } return dumyNode->next; } };题目三: 删除排序链表中的重复元素 II
给定一个已排序的链表的头 head , 删除原始链表中所有重复数字的节点,只留下不同的数字 。返回 已排序的链表 。
示例 1:
输入:head = [1,2,3,3,4,4,5]
输出:[1,2,5]
示例 2:
输入:head = [1,1,1,2,3]
输出:[2,3]
提示:
链表中节点数目在范围 [0, 300] 内
-100 <= Node.val <= 100
题目数据保证链表已经按升序 排列
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/remove-duplicates-from-sorted-list-ii
class Solution { public: ListNode* deleteDuplicates(ListNode* head) { if(head==nullptr||head->next==nullptr) return head; ListNode* dumyNode=new ListNode(-1); dumyNode->next=head; int val=101; ListNode* p=head,*q=head->next,*r=dumyNode; while(q!=nullptr){ if(p->val==q->val){ val=p->val; while(p!=nullptr&&p->val==val){ r->next=q; p=q; if(q!=nullptr){ q=q->next; } } }else{ r=p; p=q; q=q->next; } } if(dumyNode->next==nullptr) return nullptr; return dumyNode->next; } };
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)