链接:https://leetcode-cn.com/problems/is-subsequence 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。 你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100 ...
分类:
其他好文 时间:
2020-01-26 12:59:01
阅读次数:
56
题解 第一种方法:令数组tree[]记录栈中的元素,栈中的数值 x 的个数为 tree[x] 。树状数组维护tree[],然后二分查找。 第二种方法:利用分块,以一定长度区间为单位,记录栈中数值的个数,然后暴力查找。 代码 //树状数组 + 二分 #include<bits/stdc++.h> us ...
分类:
其他好文 时间:
2020-01-25 22:07:44
阅读次数:
82
我不复制题目了,太丑。转跳戳这里:--\(˙<>˙)/-- 这道题最简单的做法就是一个个比较,从第一个比到最后一个,但是很显然这样子太暴力了,leetcode哪里会出这种题目给我们。注意题目的字眼 “假设按照升序排序的数组在预先未知的某个点上进行了旋转”,这很明显就是想让我们用二分查找写这道题目,可 ...
分类:
编程语言 时间:
2020-01-25 00:57:30
阅读次数:
100
观点1 我们无法孤立数据结构来讲算法,也无法孤立算法来讲数据结构。 比如,因为数组具有随机访问的特点,常用的二分查找算法需要用数组来存储数据。但如果 我们选择链表这种数据结构,二分查找算法就无法工作了,因为链表并不支持随机访问。 ...
分类:
编程语言 时间:
2020-01-24 21:16:44
阅读次数:
86
二分查找常用与一个 有序 序列或一个具有 单调性 问题中。 8.1 编程思路: 1. 设有一数组 $a[n]$ ,数组中的元素按值从小到大排列有序。用变量 $low, high$ 和 $mid$ 分别指示待查元素所在区间的下界、上界和中间位置。初始时,$low=0,high=n 1$ ,查找 $x$ ...
分类:
其他好文 时间:
2020-01-24 14:32:14
阅读次数:
74
/* 算法: 数组的复制,反转,查找(线性查找,二分查找) */ import java.util.Scanner; public class arrayCopyReverseSearch { public static void main(String[] args) { String[] arr ...
分类:
编程语言 时间:
2020-01-24 00:18:42
阅读次数:
109
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties: The left subtree of a node contains only nodes ...
分类:
其他好文 时间:
2020-01-23 09:27:17
阅读次数:
80
剑指OFFER 旋转数组的最小数字 暴力解法 直接一次扫描找出最小元素,时间效率比较低,需要改进 发现提交测试的时间还是一样的,可能是测评系统的问题吧,使用了二分查找多少都会快一些吧 ...
分类:
编程语言 时间:
2020-01-23 09:22:03
阅读次数:
58
1 //冒泡排序 2 void bubbleSorte(int* arr, int len) 3 { 4 for (int i = 0; i < len - 1; i++) 5 { 6 for (int j = 0; j < len - 1 - i; j++) 7 { 8 if (arr[j] > ...
分类:
编程语言 时间:
2020-01-22 14:44:45
阅读次数:
94
二分法总结:满足某个条件的first position of。。。。 和 last position of。。。。用二分法 先从二分法开始写: 4点: 1.start+1<end; 退出条件两个相邻了就退出 2.mid=start+(end-start)/2;//防止溢出 3.A[mid] == > ...
分类:
其他好文 时间:
2020-01-22 14:44:16
阅读次数:
80