题目: 将有序数组转换为二叉搜索树:将一个按照升序排列的有序数组,转换为一棵高度平衡二叉搜索树。 本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。 思路: 因为输入是递增的数组,为了转换成二叉搜索树,因此需要找到整个树的根节点,之后使用递归来的得到每个子树 ...
分类:
编程语言 时间:
2020-05-19 10:54:56
阅读次数:
56
想要H5页面中实现升序,降序的排序功能 : 问题 : 点击排序按钮只可以降序,不能升序 原因 : 小于0时无法排序, 原因是返回值为 int 类型, 小于0的值变为0,所以无法排序 但是在解决这个问题同时发现了另外一个问题, 因为要做分页处理(每页数据为15条), 数据超过15条数据时, 那么排序只 ...
分类:
数据库 时间:
2020-05-18 12:18:55
阅读次数:
72
场景: 奥运会时期,每场赛事后,对国家的金、银、铜牌进行排序,排序规则如下: 先以金牌排序,金牌数越多,排得越前,如果金牌数相同,则比银牌数,如果银牌数一样多,则比铜牌数,如果铜牌数还一样多,则按国家英文字母顺序升序排序。 例如: China 51 20 21 American 50 1 1 Jap ...
分类:
编程语言 时间:
2020-05-17 13:24:09
阅读次数:
74
31. 下一个排列 题目 实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。 如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。 必须原地修改,只允许使用额外常数空间。 以下是一些例子,输入位于左侧列,其相应输出位于右侧列。 解题思路 思路:迭 ...
分类:
编程语言 时间:
2020-05-16 20:23:12
阅读次数:
69
问题: 输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表。要求不能创建任何新的结点,只能调整树中结点指针的指向。 分析:二叉搜索树的中序遍历将得到升序结果。 (1)使用List结构记录中序遍历结果. (2)将list中的元素构建为双向链表。 code: public TreeNode Co ...
分类:
其他好文 时间:
2020-05-16 15:10:55
阅读次数:
62
描述 给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。 你的算法时间复杂度必须是?O(log n) 级别。 如果数组中不存在目标值,返回?[ 1, 1]。 示例 1: 输入: nums = [5,7,7,8,8,10], target ...
分类:
编程语言 时间:
2020-05-13 00:28:29
阅读次数:
63
题目: 搜索二维矩阵 II:编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target。该矩阵具有以下特性: 每行的元素从左到右升序排列。 每列的元素从上到下升序排列。 思路: 二分查找常规思路。 程序: class Solution: def searchMatrix( ...
分类:
编程语言 时间:
2020-05-12 11:59:03
阅读次数:
220
算法简介 二分查找 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。 首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将 ...
分类:
编程语言 时间:
2020-05-11 23:43:48
阅读次数:
96
给定一个已按照升序排列 的有序数组,找到两个数使得它们相加之和等于目标数。 函数应该返回这两个下标值 index1 和 index2,其中 index1 必须小于 index2。 说明: 返回的下标值(index1 和 index2)不是从零开始的。 你可以假设每个输入只对应唯一的答案,而且你不可以 ...
分类:
编程语言 时间:
2020-05-11 23:21:11
阅读次数:
76
堆排序(升序为例) 思路: 1. 首先要建一个大顶堆 2. 交换堆顶元素与最后一个元素,堆的size 1 3. 重复第二步,直至堆中只有元素一个 \ 最好、最坏、平均时间复杂度:O(nlogn) \ 空间复杂度: O(1) \ 稳定性: 不稳定 ...
分类:
编程语言 时间:
2020-05-10 19:07:12
阅读次数:
68