leetcode——[102]Binary Tree Level Order Traversal二叉树的层次遍历 发表于 2018-06-04 | | 阅读次数: 题目给定一个二叉树,返回其按层次遍历的节点值。 (即逐层地,从左到右访问所有节点)。 例如:给定二叉树: [3,9,20,null,null,15,7], 12345 3 / \9 20 / \ 15 7 返回其层次遍历结果: 12345[ [3], [9,20], [15,7]] 阅读全文 »
二叉树的层次遍历、二叉树的生成、求深度、统计节点数 发表于 2018-06-04 | | 阅读次数: 概述在上次基本遍历后,总结一下二叉树的层次遍历、二叉树的生成、求节点深度、统计节点数,二叉树的结构定义为: 12345678910//Definition for a binary tree node.public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; }} 阅读全文 »
8种基础排序方法总结 发表于 2018-05-29 | | 阅读次数: 1.插入排序基本思想在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。 算法描述: 一般来说,插入排序都采用in-place(即只需用到O(1)的额外空间的排序)在数组上实现。具体算法描述如下: 从第一个元素开始,该元素可以认为已经被排序 取出下一个元素,在已经排序的元素序列中从后向前扫描 如果该元素(已排序)大于新元素,将该元素移到下一位置 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置 将新元素插入到该位置后 重复步骤2~5 阅读全文 »
字节跳动2018 Android校招编程题——用户喜好 发表于 2018-05-22 | | 阅读次数: 题目用户喜好为了不断优化推荐效果,今日头条每天要存储和处理海量数据。假设有这样一种场景:我们对用户按照它们的注册时间先后来标号,对于一类文章,每个用户都有不同的喜好值,我们会想知道某一段时间内注册的用户(标号相连的一批用户)中,有多少用户对这类文章喜好值为k。因为一些特殊的原因,不会出现一个查询的用户区间完全覆盖另一个查询的用户区间(不存在L1<=L2<=R2<=R1)。 阅读全文 »
二叉树的遍历总结 发表于 2018-05-21 | | 阅读次数: 概述这次首先总结二叉树的前序、中序、后序、层次遍历的递归与非递归实现。 下次总结二叉树的查找、求二叉树的深度、统计节点个数与节点比较的递归实现。 阅读全文 »
leetcode——[237]Delete Node in a Linked List删除链表中的节点 发表于 2018-05-11 | | 阅读次数: 题目请编写一个函数,使其可以删除某个链表中给定的(非末尾的)节点,您将只被给予要求被删除的节点。 比如:假设该链表为 1 -> 2 -> 3 -> 4 ,给定您的为该链表中值为 3 的第三个节点,那么在调用了您的函数之后,该链表则应变成 1 -> 2 -> 4 。 阅读全文 »
leetcode——[088]Merge Sorted Array合并两个有序数组 发表于 2018-05-09 | | 阅读次数: 题目给定两个有序整数数组 nums1 和 nums2,将 nums2 合并到 nums1 中,使得 num1 成为一个有序数组。 说明: 初始化 nums1 和 nums2 的元素数量分别为 m 和 n。 你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。 示例: 12345输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = [2,5,6], n = 3输出: [1,2,2,3,5,6] 阅读全文 »
leetcode——[101]Symmetric Tree对称二叉树 发表于 2018-05-08 | | 阅读次数: 题目给定一个二叉树,检查它是否是镜像对称的。 例如,二叉树 [1,2,2,3,4,4,3] 是对称的。 12345 1 / \ 2 2 / \ / \3 4 4 3 但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的: 12345 1 / \2 2 \ \ 3 3 说明: 如果你可以运用递归和迭代两种方法解决这个问题,会很加分。 阅读全文 »
leetcode——[098]Validate Binary Search Tree验证二叉搜索树 发表于 2018-05-08 | | 阅读次数: 题目给定一个二叉树,判断其是否是一个有效的二叉搜索树。 一个二叉搜索树具有如下特征: 节点的左子树只包含小于当前节点的数。 节点的右子树只包含大于当前节点的数。 所有左子树和右子树自身必须也是二叉搜索树。 示例 1: 12345输入: 2 / \ 1 3输出: true 示例 2: 123456789输入: 5 / \ 1 4 / \ 3 6输出: false解释: 输入为: [5,1,4,null,null,3,6]。 根节点的值为 5 ,但是其右子节点值为 4 。 阅读全文 »
leetcode——[387]First Unique Character in a String字符串中的第一个唯一字符 发表于 2018-05-04 | | 阅读次数: 题目给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。 案例: 12345s = "leetcode"返回 0.s = "loveleetcode",返回 2. 注意事项:您可以假定该字符串只包含小写字母。 阅读全文 »