摘要: 写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。 题解:使用位运算 计算不进位的和 sum = a ^ b; 计算进位carry = a & b << 1; 重复上两步a = sum; b = carry; class Solution { publ 阅读全文
posted @ 2020-04-09 17:29 betaa 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 1. 二叉搜索树的最近公共祖先 判断当前节点的值和两节点的值的大小即可确定$LCA(p, q)$的位置: 如果p q的值都小于当前节点的值,则递归进入当前节点的左子树;如果p q的值都大于当前节点的值,则递归进入当前节点的右子树;如果当前节点的值在p q两个节点的值的中间,那么这两个节点的最近公共祖 阅读全文
posted @ 2020-04-09 17:06 betaa 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 注意各种特殊情况 class Solution { public: int strToInt(string s) { int res = 0; int i = 0; int flag = 1; // 检查空格 while (s[i] == ' ') i++; // 检查符号 if (s[i] == 阅读全文
posted @ 2020-04-09 16:58 betaa 阅读(162) 评论(1) 推荐(0) 编辑
摘要: 输入一棵二叉树的根节点,判断该树是不是平衡二叉树。如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树。 方法1:后序遍历二叉树,先判断子树是不是平衡树,如果不是,直接返回,此处利用了剪枝的思想 time: $O(n)$ space: $O(n)$ /** * Definit 阅读全文
posted @ 2020-04-08 16:21 betaa 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 输入两个链表,找出它们的第一个公共节点。 如果两个链表没有交点,返回 NULL 。 我们使用两个指针 node1,node2 分别指向两个链表 headA,headB 的头结点,然后同时分别逐结点遍历,当 node1 到达链表 headA 的末尾时,重新定位到链表 headB 的头结点;当 node 阅读全文
posted @ 2020-04-08 15:15 betaa 阅读(156) 评论(0) 推荐(0) 编辑
摘要: Given an integer array A, you partition the array into (contiguous) subarrays of length at most K. After partitioning, each subarray has their values 阅读全文
posted @ 2020-04-08 09:49 betaa 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 找出数组中最小的k个数。 排序 ,$nlog(n)$ 维持大小为k的最大堆,$nlog(k)$ 快排思想,期望时间复杂度 $O(n)$,最坏时间复杂度 $O(n^2)$,随机partition会改善最坏的情况 class Solution { public: int partition(vector 阅读全文
posted @ 2020-04-07 18:35 betaa 阅读(128) 评论(0) 推荐(0) 编辑
摘要: 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。 分析: class Solution { public: int majorityElement(vector<int>& nums) { int x = 0, votes = 阅读全文
posted @ 2020-04-07 17:36 betaa 阅读(106) 评论(0) 推荐(0) 编辑
摘要: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的循环双向链表。要求不能创建任何新的节点,只能调整树中节点指针的指向。 特别地,我们希望可以就地完成转换操作。当转化完成以后,树中节点的左指针需要指向前驱,树中节点的右指针需要指向后继。还需要返回链表中的第一个节点的指针。 注意点: 中序遍历BST即为 阅读全文
posted @ 2020-04-07 16:24 betaa 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 大小端是指数据存储或者传输时的字节序。 大端:数据的低位存放在高地址 小端:数据的低位存放在低地址 查看大小端的方法:把变量的地址强制类型转换为char*,这样就可以每次取出一个字节的内容 #include <iostream> using namespace std; int main() { i 阅读全文
posted @ 2020-03-20 19:21 betaa 阅读(209) 评论(0) 推荐(0) 编辑