binary专题

uva 575 Skew Binary(位运算)

求第一个以(2^(k+1)-1)为进制的数。 数据不大,可以直接搞。 代码: #include <stdio.h>#include <string.h>const int maxn = 100 + 5;int main(){char num[maxn];while (scanf("%s", num) == 1){if (num[0] == '0')break;int len =

226 Invert Binary Tree

//226 Invert Binary Tree//算法思路:主要使用递归算法public class Solution {public TreeNode invertTree(TreeNode root) {//1 出口 空节点if (root==null)return null;//2 递归 调用自己TreeNode left = root.left;TreeNode right = ro

[LeetCode] 863. All Nodes Distance K in Binary Tree

题:https://leetcode.com/problems/all-nodes-distance-k-in-binary-tree/ 题目大意 求给树中,距给定 结点 指定长度的 所有结点的val 思路 tree -> graph 、 bfs 先遍历树,并用map记录每个结点的父结点 ,将树变为图,然后 bfs。 /*** Definition for a binary tree

LeetCode 67 Add Binary

题意: 两个二进制数相加,输出结果 思路: 各种模拟均可,比如先把A和B倒过来,再按位相加,最后把结果再倒回来。 不过为了快,我是这样做的——假设A比B长,那么我对位相加B的长度。这时如果没有进位,那么A长出B的部分就不会变了;如果有进位,那么继续往A的高位加,直到某一次进位为0,那么更高位的A就不变了;如果直到最后还有进位,那就最前面添加一个最高位1。 代码: cla

Classical Binary Search

Find any position of a target number in a sorted array. Return -1 if target does not exist. Example Example 1: Input: nums = [1,2,2,4,5,5], target = 2Output: 1 or 2 Example 2: Input: nums = [1,

Cousins in binary tree

Input: root = [1,2,3,null,4,null,5], x = 5, y = 4Output: true Input: root = [1,2,3,4], x = 4, y = 3Output: false 思路:就是level order traverse,BFS,记录一下parent, curNode, Depth; /*** Definition for

Average of Levels in Binary Tree

Input:3/ \9 20/ \15 7Output: [3, 14.5, 11]Explanation:The average value of nodes on level 0 is 3, on level 1 is 14.5, and on level 2 is 11. Hence return [3, 14.5, 11]. 思路:就是一个level order trav

Closest Leaf in a Binary Tree

Input:root = [1,2,3,4,null,null,null,5,null,6], k = 2Diagram of binary tree:1/ \2 3/4/5/6Output: 3Explanation: The leaf node with value 3 (and not the leaf node with value 6) is nearest to the no

Binary Tree - Lowest Common Ancestor 题型总结

Lowest Common Ancestor of a Binary Search Tree 思路:这题跟 Lowest Common Ancestor of Binary Tree 一模一样。思路:就是找p的节点在不在左支,或者右支,找到各自左右节点,然后进行比较,如果两者不一样,说明当前的root就是lowest 父节点,如果左边为空,那就都在右边,返回右边的即可,如果右边为空,那就都在左

Android运行时异常“Binary XML file line # : Error inflating class” 发生的几种情况

在原生Android下编译APK,编译没有问题,但是在运行的时候经常出现如标题所描述的异常,然后整个程序蹦掉......     大部分情况是因为修改了资源文件所引起,大致有以下几种方式来解决:     1. 引用类名问题:自定义了一个View,将他用于布局文件中,假设他的包名叫MyPackage,类名叫MyTestView,这个时候你在XML作为布局元素来布局的话,必须使用完整路径名,

android Binary XML file line #1: Binary XML file line #1: Error inflating class x 问题详解

话不多少,上错误堆栈: Process: com.mci.smagazine, PID: 25065java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mci.smagazine/com.zhangyue.iReader.idea.ActivityImageIdea}: android.view.Infla

算法-搜索算法:二分查找(Binary Search)【前置条件:待查数据集必须是有序结构,可以右重复元素】【时间复杂度:O(logn)】

搜索:是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序/线性查找、二分法查找、二叉树查找、哈希查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;缺点是要求待查表: 必须采用顺序存储结构;必须按关键字大小有序排列;插入删除困难; 二分查找/折半查找方法适用于不经常变动而查找频繁的有序列表: 首先,假设

leetcode104 Maximum Depth Of Binary Java

Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node. 1、递归解法。两行 public int maxDept

Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class

重写Android默认Button按钮引发异常: Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class com.example.activity1.TestButton 自定义控件的代码如下,只是简单重写onTouchEvent方法,一直没办法正常使用。

leetcode 刷题之路 14 Convert Sorted Array to Binary Search Tree

Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 题目要求将有序数组转换为一个二元查找树。树的题目大部分都可以采用递归来解决,这道题也不例外。一个二元查找树的左子树上的所有节点都小于根节点,右子树上的所有节点都大于根节点,同时二元查找树左子树和右子树上

leetcode 刷题之路 4 Binary Tree Level Order Traversal

Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, level by level). For example: Given binary tree {3,9,20,#,#,15,7}, 3/ \9 20/ \15 7

leetcode 刷题之路 40 Minimum Depth of Binary Tree

Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shortest path from the root node down to the nearest leaf node. 求二叉树的最小深度,最小深度定义为从根节点到最近的叶子节点经过的节点个

二叉树(binary tree)遍历详解

一、简介 二叉树常见的遍历方式包括前序遍历、中序遍历、后序遍历和层序遍历等。我将以下述二叉树来讲解这几种遍历算法。 1、创建二叉树代码实现 class TreeNode:def __init__(self,data):self.data=dataself.left=Noneself.right=Nonedef createTree():treeRoot=TreeNode('F')NodeB

Leetcode143: Convert Sorted List to Binary Search Tree

Given a singly linked list where elements are sorted in ascending order, convert it to a height balanced BST. 与排序好的数组转化为二分搜索树的题相似,可以先把链表转化为数组在转化为树。 /*** Definition for singly-linked list.* struct

ural Binary Lexicographic Sequence (dp + dfs)

http://acm.timus.ru/problem.aspx?space=1&num=1081 有一个二进制序列,定义为不能有两个连续的1出现,才是合法的。给出序列的长度n,求合法的二进制序列中按字典序排序后第k个序列是什么。 设dp[i][0]和dp[i][1]分别表示第i位上是0和1的个数。 那么dp[i][0] = dp[i-1][0] + dp[i-1][1];dp[

数据结构(二):二叉搜索树(Binary Search Tree)

转自:数据结构(二):二叉搜索树(Binary Search Tree) - 简书 (jianshu.com) 引子 定义 二叉搜索树是一种节点值之间具有一定数量级次序的二叉树,对于树中每个节点: 若其左子树存在,则其左子树中每个节点的值都不大于该节点值;若其右子树存在,则其右子树中每个节点的值都不小于该节点值。 示例: 查询复杂度 观察二叉搜索树结构可知,查询每个

【什么是“Binary“二进制文件?】

“Binary”二进制文件是计算机文件的一种形式。部件文件是开发人员编写的源代码文件,还未被编译成可执行的机器代码,通常具有如.c、.cpp、.java 等扩展名。对象文件是部件文件经过编译器编译生成的中间文件,包含了部件文件的机器代码和符号表信息,通常扩展名有.o、.obj 等。而二进制文件是经过链接器将多个对象文件和库文件合并生成的最终可执行文件,包含了完整的机器代码,可以直接在特定的操作系统

LeetCode | Binary Tree Zigzag Level Order Traversal

二叉树Z型输出 Given a binary tree, return the zigzag level order traversal of its nodes’ values. (ie, from left to right, then right to left for the next level and alternate between). For example: Given

LeetCode | Binary Tree Postorder Traversal

后序遍历,当然,,,用栈实现 后序遍历的关键在于从左孩子回到根节点和从右孩子回到跟节点。 如果是从左回的,要继续向右。如果是从右边回来的(表明左右孩子已经遍历结束)这时候就需要将自身输出。 具体到代码上,就是使用一个q指针,用于保存上一个走过的节点(确切的说应该是输出的节点)。 然后从栈顶取出元素的时候,判断p->right==q? 来决定它是从哪个方向回来的~ 完成使命~~ 注释里面

LeetCode | Binary Tree Inorder Traversal

Given a binary tree, return the inorder traversal of its nodes’ values. For example: Given binary tree [1,null,2,3], 1 \ 2 / 3 return [1,3,2]. Note: Recursive solution is trivial, could you

LeetCode | Binary Tree Preorder Traversal

先序遍历 Given a binary tree, return the preorder traversal of its nodes’ values. For example: Given binary tree {1,#,2,3}, 1 \ 2 3 return [1,2,3]. Note: Recursive solution is trivial, could you do