universe_ant的博客

努力努力再努力

【LeetCode】最短子数组之和(Minimum size subarray sum)

Given an array of n positive integers and a positive integer s, find the minimal length of a subarray of which the sum ≥ s. If there isn't one, retur...

2017-06-28 20:51:21

阅读数 412

评论数 0

剑指Offer——n个骰子的点数

题目:把n个骰子扔在地上,所有骰子朝上一面的点数之和为s,输入n,打印出s的所有可能的值出现的概率。 解法一:基于递归求骰子的点数,时间效率不够高 现在我们考虑如何统计每一个点数出现的次数。要想求出n个骰子的点数和,可以先把n个骰子分为两堆:第一堆只有1个,另一个有n-1个。单独的那一个有可能...

2017-06-22 20:48:23

阅读数 280

评论数 0

机器人寻路

题目描述: 将机器人放在一个m×n的矩阵的左上角,机器人每次只能向右或者向下走一步,现在机器人向走到右下角,请问有多少种可能的走法? 思路分析: 这是典型的动态规划的问题,指定任意一个格子,它可以向右或者向下移动一格,所以动态方程很明显是:res[i][j] = res[i-1]...

2017-06-22 12:35:00

阅读数 258

评论数 0

剑指Offer——二叉搜索树转换为双向链表

分析问题: 首先要明白二叉搜索树也是一种排序的数据结构,它的中序遍历就是一个不递减的顺序排列。所以如果要转换成一个排好序的双向链表,那么仅需要改变原来指向左子节点和右子节点的指针,让它们分别指向前节点和后节点即可,如图所示: 调整指针: 原先指向左子节点的指针调整为链表中指向前一个节点的指针;...

2017-06-20 20:35:11

阅读数 218

评论数 0

剑指Offer——在O(1)时间内删除表节点

题目描述: 给定单向列表的头指针和一个节点指针,定义一个函数在O(1)时间删除该节点。 解题思路: 一般单向链表删除节点,就是从头遍历,找到这个节点,指向这个节点之后的节点,就算是删除了这个节点。 这种算法的复杂度为O(n)。 题目要求在O(1)时间内完成,所以应该避免遍历。 我们遍历的目的是为了...

2017-06-20 01:04:22

阅读数 192

评论数 0

MySQL的复制流程

基本的实现依靠3个线程: 主服务器:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中;从服务器:io线程——在使用start slave之后,负责从master上拉取binlog内容,放进自己的relay log中;从服务器:sql执行线程——执行...

2017-06-19 09:58:06

阅读数 246

评论数 0

网易笔试题:男女小孩站队问题

题目描述: 幼儿园有n个小朋友排为一个队伍,男生用“B”表示,女生用“G”表示。当男女同挨着时就会发生矛盾。需要对所排的队伍进行调整,每次调整只能让相邻的小朋友交换位置,现在需要尽快完成队伍调整,你需要计算出最少需要调整多少次可以让上述情况最少。例如:GGBBG->GGBGB->GGG...

2017-06-19 00:43:07

阅读数 398

评论数 0

【Leetcode】Decode Ways 解码方式

题目:A message containing letters from A-Z is being encoded to numbers using the following mapping: 'A' -> 1 'B' -> 2 ... 'Z' -> 26 Given an e...

2017-06-15 23:19:02

阅读数 282

评论数 0

【Leetcode】从右边看二叉树

原题出自LeetCode: Given a binary tree, imagine yourself standing on the right side of it, return the values of the nodes you can see ordered from top to ...

2017-06-15 12:57:53

阅读数 1435

评论数 0

剑指Offer——丑数

题目:丑数 我们把只包含因子2,3,5的数称为丑数(Ugly Number)。求按从小到大的顺序的第1500个丑数。例如,6、8都是丑数,但14不是,因为它含有因子7。习惯上我们把1当作第一个丑数。 思路: 根据丑数的定义,丑数应该是另一个丑数乘以2、3或5的结果。因此我们可...

2017-06-15 12:04:01

阅读数 218

评论数 0

剑指Offer——二叉树中和为某一值的路径

题目:输入一棵二叉树和一个整数,打印出二叉树中节点值的和为输入整数的所有路径。从树的根节点开始往下一直到叶节点所经过的所有的节点形成一条路径。 输入如下图的二叉树和整数22,则打印出两条路径,第一条路径包含节点10,12,第二条路径包含的节点为10,5,7。 一般的...

2017-06-15 11:00:25

阅读数 254

评论数 0

【Java实现】判断一棵树是否为BST,一棵树是否为完全二叉树

给定一个二叉树,判断它是不是二叉搜索树。 思路:对于一棵二叉树,最简单的方法就是中序遍历,看是不是一个递增数列,如果是,则是一棵二叉搜索树,如果不是,则不是二叉搜索树。在这里用一个lastVisit去记录上一次搜索的节点。这个过程就是先找到最左下角的节点,更新lastVisit为这个节点的值,然后...

2017-06-15 01:30:39

阅读数 4031

评论数 0

剑指Offer——计算1至n中数字x出现的次数

一、1的数目 编程之美上给出的规律: 1. 如果第i位(自左至右,从1开始标号)上的数字为0,则第i位可能出现1的次数由更高位决定(若没有高位,视高位为0),等于更高位数字乘以当前位数的权重10^(i-1)。 2. 如果第i位上的数字为1,则第i位上可能出现1的次数不仅受更高位影响,还受低位...

2017-06-14 22:53:22

阅读数 375

评论数 0

广度优先搜索和深度优先搜索

广度优先搜索 广度优先搜索(BFS),可以被形象地描述为“浅尝辄止”,具体一点就是每个顶点只访问它的邻接节点(如果它的邻接节点没有被访问)并且记录这个邻接节点,当访问完它的邻接节点之后就结束这个顶点的访问。 广度优先用到了“先进先出”队列,通过这个队列来存储第一次发现的节点,以便下一次的处理;...

2017-06-13 00:48:55

阅读数 237

评论数 0

大疆笔试题目:长度为n的方格,刷3种颜色,相邻方格颜色不同,首尾颜色不同,共多少种涂色方式

题目描述: 长度为n的方格,刷3种颜色的颜料,相邻的方格颜料颜色不能相同,且首尾方格颜色不能相同。每个方格必须涂色。计算一共有多少种涂色方式。 题目分析: 当n==1时,共3种方案,即A1 = 3; 当n==2时,有6种方案(A(3, 2) = 6),即A2 = 6; 当n==3时,有6种方案...

2017-06-11 10:23:20

阅读数 2679

评论数 0

求二叉树的节点个数、叶子节点个数、第k层的节点个数

class BinaryTreeNode { int val; BinaryTreeNode left = null; BinaryTreeNode right = null; } public class NodesStatistics { /** * 求二叉树的节点个数 * ...

2017-06-10 16:54:54

阅读数 2394

评论数 2

大端和小端

对于大端和小端的概念一直是看了又忘,忘了又看,今天在这里总结一下。 大端和小端,如果换一种叫法可能会更好理解,那就是:高尾端和低尾端,举个例子: 高尾端和低尾端更加通俗易懂。高尾端对应大端,低尾端对应小端。 高尾端(大端)就是指尾部在高地址处; 低尾端(小端)就是指尾部在低地址处。

2017-06-10 16:38:54

阅读数 157

评论数 0

归并排序的Java实现

题目:对于一个int数组,请编写一个归并排序算法,对数组元素排序。给定一个int数组A及数组的大小n,请返回排序后的数组。 算法思路: 先用递归方法,默认排序方法为2路归并排序。看下图应该能立即理解: 先使每个子序列有序,再将两个已经排序的序列合并成一个序列的操作。若将两个...

2017-06-09 11:39:56

阅读数 228

评论数 0

数组中的逆序对数

逆序对定义:在一个数组a[]中,i和j分别为数组的下标,其中i a[j],则a[i]和a[j]是一对逆序对。 思路:利用归并排序的思想,先求前面一半数组的逆序数,再求后面一半数组的逆序数,然后求前面一半数组比后面一半数组中大的数的个数(也就是逆序数),这三个过程加起来就是整体的逆序数目了...

2017-06-09 11:09:37

阅读数 234

评论数 0

求两个排序数组的中位数

题目:给定两个排序数组,求两个排序数组的中位数,要求时间复杂度为O(log(m+n))。 举例: Example 1: nums1 = [1, 3] nums2 = [2] The median is 2.0 Example 2: nums1 = [1, 2] nums2 = [3, 4]...

2017-06-09 09:52:57

阅读数 402

评论数 0

提示
确定要删除当前文章?
取消 删除
关闭
关闭