方法一: 动态规划 (O(n)) class Solution { public int lengthOfLIS(int[] nums) { int n = nums.length; if(n < 2) return n; int[] dp = new int[n+1]; // dp[i] : 以第 ...
分类:
其他好文 时间:
2020-07-08 13:12:25
阅读次数:
53
目录 二分查找 排序的写法 BFS的写法 DFS的写法 回溯法 树 递归 迭代 前序遍历 中序遍历 后序遍历 构建完全二叉树 并查集 前缀树 图遍历 Dijkstra算法 Floyd-Warshall算法 Bellman-Ford算法 最小生成树 Kruskal算法 Prim算法 拓扑排序 查找子字 ...
分类:
其他好文 时间:
2020-07-07 18:08:11
阅读次数:
74
二分查找 二分查找是一种算法,它的输入是一个有序列表。如果所要查找的元素在其中就返回其位置,否则就返回None。 二分查找在生活中最常见的例子就是猜数游戏,游戏的玩法呢就是支持人给出一个数的范围,心里确定一个数,让其他人来猜。每次当有人猜错时,主持人便会告诉我们猜大了还是猜小了,相应的我们的猜数范围 ...
分类:
其他好文 时间:
2020-07-07 13:27:08
阅读次数:
55
二分查找 思想:二分搜索是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。 ...
分类:
其他好文 时间:
2020-07-05 20:59:19
阅读次数:
47
题目信息 时间: 2019-07-04 题目链接:Leetcode tag: 二分查找 难易程度:简单 题目描述: 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0~n-1之内。在范围0~n-1内的n个数字中有且只有一个数字不在该数组中,请找出这个数字。 示例1: 输入: ...
分类:
其他好文 时间:
2020-07-05 17:22:28
阅读次数:
53
问题描述 给定一个整数数组 nums,按要求返回一个新数组 counts。数组 counts 有该性质: counts[i] 的值是 nums[i] 右侧小于 nums[i] 的元素的数量。 示例: 输入: [5,2,6,1]输出: [2,1,1,0] 解释:5 的右侧有 2 个更小的元素 (2 和 ...
分类:
编程语言 时间:
2020-07-05 15:45:27
阅读次数:
67
题目信息 时间: 2019-07-04 题目链接:Leetcode tag:二分查找 哈希表 难易程度:简单 题目描述: 统计一个数字在排序数组中出现的次数。 示例1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: 2 示例2: 输入: nums = [5,7, ...
分类:
编程语言 时间:
2020-07-05 13:19:23
阅读次数:
48
PTA 01-复杂度3 二分查找 题目描述 本题要求实现二分查找算法。 函数接口定义: Position BinarySearch( List L, ElementType X ); 其中List结构定义如下: typedef int Position; typedef struct LNode * ...
分类:
其他好文 时间:
2020-07-04 11:53:06
阅读次数:
71
一、递归 递归就是方法自己调用自己,每次调用时传入不同的变量。有助于编程者解决复杂的问题,同时可以让代码变得简洁。 递归用于解决什么样的问题 各种数学问题如: 8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛)等。 各种算法中也会使用到递归,比如快排,归并排序,二分查找, ...
分类:
其他好文 时间:
2020-07-03 23:31:26
阅读次数:
76
解题思路: 这道题是要将有序数组转为二叉搜索树,所谓二叉搜索树,是一种始终满足左<根<右(另外一种更直白的解释,二叉搜索树:空树或者二叉树的所有节点比他的左子节点大,比他的右子节点小。)的特性的二叉树,如果将二叉搜索树按中序遍历的话,得到的就是一个有序数组了。那么反过来,我们可以得知,根节点应该是有 ...
分类:
编程语言 时间:
2020-07-03 10:45:13
阅读次数:
60