随笔
Lcloudy_sky
闲散人员,做一个没有梦想的咸鱼
展开
-
LeetCode随心写——二叉树寻路
题目描述:在一棵无限的二叉树上,每个节点都有两个子节点,树中的节点 逐行 依次按 “之” 字形进行标记。如下图所示,在奇数行(即,第一行、第三行、第五行……)中,按从左到右的顺序进行标记;而偶数行(即,第二行、第四行、第六行……)中,按从右到左的顺序进行标记。给你树上某一个节点的标号 label,请你返回从根节点到该标号为 label 节点的路径,该路径是由途经的节点标号所组成的。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/path-原创 2021-07-29 01:24:50 · 113 阅读 · 0 评论 -
求多数元素(摩尔投票法)
题目 给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数 大于 ⌊ n/2 ⌋ 的元素。 你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入:[3,2,3]输出:3示例 2:输入:[2,2,1,1,1,2,2]输出:2摩尔投票法(同归于尽法) 假设数组中每个不同的数字就代表一个国家,而数字的个数就代表这个国家的人数,他们在一起混战,不同国家的人两两同归于尽。最后剩下哪一方,我们就可以知道谁的人数大于数组长度一半。来看下代码cla原创 2021-06-19 17:53:52 · 149 阅读 · 0 评论 -
位运算(一)
异或位运算位运算 程序中的所有数在计算机内存中都是以二进制的形式储存的。位运算就是直接对整数在内存中的二进制位进行操作。比如,and运算本来是一个逻辑运算符,但整数与整数之间也可以进行and运算。举个例子,6的二进制是110,11的二进制是1011,那么6 and 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False,1表示True,空位都当0处理)。异或位运算规律a ^ a = 0;自己和自己异或等于0a ^ 0 = a;任何数字和0异或还等于他自己a ^ b ^ c =原创 2021-06-19 17:25:05 · 239 阅读 · 0 评论 -
数组常见误区(一)
数组赋值 数组赋值时,若直接令两个数组相等,如 int[] a = b,(其中b为已知数组)则a,b共用相同的存储空间,数组a改变时数组b会发生相应的变化,同理,数组a亦随数组b的变化而变化。 若想数组a和数组b之间相互无关,则应对数组a的元素逐个进行赋值,如下: int[] a = new int[b.length]; for(int i = 0 ; i < a.length ; i++) { a[i] = b[i];原创 2021-06-17 21:09:28 · 217 阅读 · 0 评论