笔记
bing love
这个作者很懒,什么都没留下…
展开
-
力扣136找出出现次数为一的数字
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。示例 :输入: [2,2,1]输出: 1思路:直接异或就完事异或的性质,相同为0,不同为0,因此将数组的所有元素进行异或,出现两次的元素最后异或成为0,只出现一次的元素与0异或还是本身。class Solution {public: int singleNumber(vector<int>& nums) { int ret = 0;原创 2021-12-26 23:30:40 · 3195 阅读 · 0 评论 -
力扣114. 二叉树展开为链表
给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而左子指针始终为 null 。展开后的单链表应该与二叉树 先序遍历 顺序相同。输入:root = [1,2,5,3,4,null,6]输出:[1,null,2,null,3,null,4,null,5,null,6]思路普通解法:先用vector将先序遍历的结果保存下来,再将二叉树展开为链表实现代码如下:先序遍历函数:void preor原创 2021-12-26 23:20:46 · 91 阅读 · 0 评论 -
如何计算一个数二进制里1的个数
给定一个数x,如何计算二进制中1的个数呢?令x&=(x-1),记录与运算的次数,直到x=0; public int countOnes(int x) { int ones = 0;//计数器 while (x > 0) //当x不等于0时 { x &= (x - 1); ones++; } return ones; }...原创 2021-12-26 10:48:30 · 272 阅读 · 0 评论 -
力扣11.盛最多水的容器
题目描述:给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水解题思路:这里用双指针法。算法思路:用两个指针l,r指向数组的头和尾:int l = 0,r = height.size()-1;定义一个变量用来保存最后的结果,初始化为0:int ans = 0;接下来就是寻找最大容量的过程了,类似原创 2021-12-26 10:32:52 · 407 阅读 · 0 评论