0

二叉树的深度

题目描述 输入一棵二叉树,求该树的深度。从根结点到叶结点依次经过的结点(含根、叶结点)形成树的一条路径,最长路径的长度为树的深度。 思路 时间复杂度O(lgn),空间复杂度O(lgn)。 递归代码 非递归代码 ...

东寻 发布于 2020-02-25 15:23 评论(0)阅读(38)
0

数字在排序数组中出现的次数

题目描述 统计一个数字在排序数组中出现的次数。 思路 二分查找: 1. 利用二分查找找到一个符合条件的值,然后循环搜索这个值前后重复的次数。(循环搜索使得算法一部分退化到O(m))。 时间复杂度O(m+lgn),空间复杂度O(1)。 2. 使用两个修改判定的二分查找,分别找到数字第一次出现和最后一次 ...

东寻 发布于 2020-02-25 15:04 评论(0)阅读(43)
0

两个链表的第一个公共结点

题目描述 输入两个链表,找出它们的第一个公共结点。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 思路 快慢指针,链表长度不同时抵消掉多余的长度。 若链表长度不同,则一定时在长链表的链尾相遇。 时间复杂度O(n),空间复杂度O(1)。 代码 笔记 链表长度 ...

东寻 发布于 2020-02-25 13:09 评论(0)阅读(33)
0

CF1304D Shortest and Longest LIS

D. Shortest and Longest LIS "原题" Problem Restatement 给出一个序列相邻的大小关系,构造相应长度满足大小关系的 排列 ,使得最长上升子序列最短或最长。 Solution 考虑到给出的是相邻的递增递减,我们会发现序列是由一段上坡一段下坡类似组合而成。而 ...

Leachim 发布于 2020-02-25 11:39 评论(0)阅读(48)
0

GMOJ5409.【GDOI2017模拟一试4.11】平行宇宙

https://gmoj.net/senior/#main/show/5051 Solution 首先注意到每个点有且只有一条出边,也就是说这是一个环套树(森林)。 那么我们可以贪心。 首先这个森林里入度为零的点一定要跟root连边,因为没有任何其他的点可以到入度为零的点,然后就可以通过这些点更新其 ...

zhouzj2004 发布于 2020-02-24 22:16 评论(0)阅读(28)
0

codeforces 1301C Ayoub's function

题目链接:http://codeforces.com/problemset/problem/1301/C 思路: 纯想想了一次,发现one_cnt >= zero_cnt的时候很简单,就是(n)*(n+1)/2+ont_cnt, 但是当one_cnt<zero_cnt的时候,就有点麻烦了,虽然乱七八 ...

SummerMingQAQ 发布于 2020-02-24 15:26 评论(0)阅读(70)
0

数组中的逆序对

题目描述 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。 并将P对1000000007取模的结果输出,即输出P%1000000007。 输入描述: 题目保证输入的数组中没有的相同的数字。 数据范围: 对于%50的数据,s ...

东寻 发布于 2020-02-24 14:24 评论(0)阅读(23)
0

第一个只出现一次的字符

题目描述 在一个字符串(0 ...

东寻 发布于 2020-02-24 14:17 评论(0)阅读(22)
0

丑数

题目描述 把只包含质因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含质因子7。 习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第N个丑数。 思路 三个计算通道存放最近算出的三个丑数(可重复),最小的也在其中,f(n+1) = min(2 pass ...

东寻 发布于 2020-02-24 13:56 评论(0)阅读(29)
0

把数组排成最小的数

题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。 思路 Collections.sort()排序。 时间复杂度O(nlgn),空间复杂度O(n)。 compare ...

东寻 发布于 2020-02-24 12:45 评论(0)阅读(27)
0

整数中1出现的次数

题目描述 求出1~13的整数中1出现的次数,并算出100~1300的整数中1出现的次数?为此他特别数了一下1~13中包含1的数字有1、10、11、12、13因此共出现6次,但是对于后面问题他就没辙了。ACMer希望你们帮帮他,并把问题更加普遍化,可以很快的求出任意非负整数区间中1出现的次数(从1 到 ...

东寻 发布于 2020-02-23 13:54 评论(0)阅读(29)
0

连续子数组的最大和

题目描述 HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6, 3, 2,7, 15,1 ...

东寻 发布于 2020-02-23 13:22 评论(0)阅读(19)
0

最小的k个数

题目描述 输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4。 思路 大根堆存放最小的k个数,建堆复杂度为n,调整堆复杂度lgn。 时间复杂度O(nlgk),空间复杂度O(k)。 代码 java import java.util.A ...

东寻 发布于 2020-02-23 12:28 评论(0)阅读(31)
0

数组中出现次数超过一半的数字

题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。 思路 使用pre记录上一次访问的值,count表明当前值出现的次数,下一个值和 ...

东寻 发布于 2020-02-23 11:43 评论(0)阅读(30)
0

字符串的排列

题目描述 输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。 思路 回溯法 时间复杂度O(n!),空间复杂度O(n)。 代码 笔记 回溯法比较容易想到,问题在于怎么实现从最小子 ...

东寻 发布于 2020-02-22 22:55 评论(2)阅读(156)
0

Escape(反思与总结)

题目描述: BH is in a maze,the maze is a matrix,he wants to escape! Input: The input consists of multiple test cases.For each case,the first line contains ...

短尾黑猫 发布于 2020-02-22 22:44 评论(0)阅读(24)
0

二叉搜索树与双向链表

题目描述 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 思路 关于树的深度搜索操作,一般都有递归和栈两种实现。 此题对树进行中序遍历,在遍历过程中操作前后两个结点,所以需要pre指针。 时间复杂度O(n),空间复杂度O(1)。 正 ...

东寻 发布于 2020-02-22 20:10 评论(0)阅读(25)
0

复杂链表的复制

题目描述 输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针指向任意一个节点),返回结果为复制后复杂链表的head。 (注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)不能改动原链表 思路 1. 链表操作 时间复杂度O(n),空间复杂度O(1 ...

东寻 发布于 2020-02-22 16:50 评论(0)阅读(26)
0

Codeforces 1301B Motarack's Birthday(二分)

题目链接:http://codeforces.com/problemset/problem/1301/B 思路: (1)都是-1的情况 (2)只有一个除-1之外的数 (3)至少有两个除-1之外的不同的数字 对于(3),我们可以得出最大数字和最小数字_max,_min,而我们的答案m和k易得一定是在[ ...

SummerMingQAQ 发布于 2020-02-22 16:20 评论(0)阅读(88)
0

腾讯2020校园招聘-后台&综合-第一次笔试 题解

对数据结构和算法感兴趣的可以关注一下https://github.com/MCQ1999/Datastructure_Algorithm_Solutions,分享算法题的解题思路和代码~ 1.压缩算法(栈模拟) 题意 链接:https://www.nowcoder.com/questionTermi ...

MCQ1999 发布于 2020-02-22 15:19 评论(0)阅读(511)