//方法一:class Solution {public:int hammingWeight(uint32_t n) {int num = 0;while (n) {if (n & 1) {num += 1;}n = n >> 1;}return num;}};//方法二:class Solution {public:int hammingWeight(uint32_t n) {if (!n) {return 0;}return (n & 1) + hammingWeight(n >> 1);}};
方法一:每一位直接和1进行&运算,然后再让n左移一位,一直到为0,结束循环并返回统计数 。
方法二:方法一的升级版,递归,学以致用 。
剑指 Offer 16. 数值的整数次方
//方法一:class Solution {public:double fastMultiplication(double x, int n) {if (n == 0) {return 1;}double y = fastMultiplication(x, n / 2);return n % 2 ? y * y * x : y * y;}double myPow(double x, int n) {if (n < 0) {return 1 / fastMultiplication(x, n);} else {return fastMultiplication(x, n);}}};
方法一:快速幂 + 递归,很牛逼 。
剑指 Offer 17. 打印从1到最大的n位数
class Solution {public:vector
这种题面试的时候应该不会考,太没有水准了,应该考虑的是有大数问题的,返回为类型的,这种问题就的使用全排列进行解答了,对每一位进行0~9的定位,同时要注意的是去零操作 。
剑指 Offer 18. 删除链表的节点
/*** Definition for singly-linked list.* struct ListNode {*int val;*ListNode *next;*ListNode(int x) : val(x), next(NULL) {}* };*/class Solution {public:ListNode* deleteNode(ListNode* head, int val) {if (head->val == val) {return head->next;}ListNode *t = head;while (t->next != NULL) {if (t->next->val == val) {t->next = t->next->next;break;} else {t = t->next;}}return head;}};
简单的删除节点,没啥好说的,不过没用双指针 。
剑指 Offer 19. 正则表达式匹配
class Solution {public:bool isMatch(string s, string p) {int m = s.size() + 1, n = p.size() + 1;vector
- 《窥情》未删减版在哪儿在线观看
- android应用程序开发!在字节跳动我是如何当面试官的,威力加强版
- 初一上册数学 初一上册数学书电子版
- 最值得普通人学的编程语言是哪个?
- win10企业版ltsc密钥 win10企业版ltsc有录屏功能吗
- 造梦西游4好号和密码真的90级 造梦西游4好号和密码真的手机版
- iqooneo7竞速版屏幕尺寸
- 一九四二电影免费完整版在哪儿在线观看
- 偷窥课程完整版是什么电影
- 医用口罩和普通口罩有什么区别