一维: 峰值规定:a[i]>a[i-1] and a[i]>a[i+1],假定只存在一个峰值 1 2 1 9 5 0 例如9就是一个峰值 方法一:顺序遍历,时间复杂度O(n) 方法二:分治策略,将列表折半查找,第一次查找n/2,左右两边哪一边大继续折半查找哪一边 def search_peak(al ...
分类:
编程语言 时间:
2020-03-02 14:28:44
阅读次数:
82
题目地址 给定一个只含有abc的字符串,要求包含abc分别各一个的子串个数。 预处理每种字符前缀和,枚举子串左端点,二分查找满足条件的右端点,三个字符取最大的,直接计数。 双指针。 code1 code2 ...
分类:
其他好文 时间:
2020-03-02 11:12:20
阅读次数:
48
1. 题目 2. 思路 1. 如下图 发现规律,对于最左边来说,后面所有的集合都是先小后大或者先大后小,如果小大交错那么不符合 2. 使用1中规律确定是否为镜像,结合二叉排序树的特点,用递归建立树 3. 输出树的后序遍历 3. 注意点 1. 发现规律比较困难 2. 树的题目一般都要用递归 4. 代码 ...
分类:
其他好文 时间:
2020-03-02 01:00:34
阅读次数:
54
1.查找问题: 二分查找: 例题:使用map解决查找问题 代码: #include <bits/stdc++.h> using namespace std; //查找学生信息 struct Student{ string name; string sex; int age; string id; } ...
分类:
其他好文 时间:
2020-03-01 14:07:43
阅读次数:
59
108. Convert Sorted Array to Binary Search Given an array where elements are sorted in ascending order, convert it to a height balanced BST. For this ...
分类:
编程语言 时间:
2020-02-29 22:03:51
阅读次数:
78
第二章 查找和排序算法课时1:列表查找1、列表查找的含义:从对象中查找某一个特定的元素2、列表查找的方式包含两种:顺序查找和二分查找3、顺序查找算法:从开始一直搜索到最后一个元素进行查找,for循环,时间复杂度为O(n);4、二分查找针对有效的列表直接进行首尾二分查找,不断使得候选区减半,所以其时间 ...
分类:
编程语言 时间:
2020-02-29 20:17:10
阅读次数:
74
给定一个按照升序排列的整数数组nums,和一个目标值target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是O(logn)级别。如果数组中不存在目标值,返回[-1,-1]。示例1:输入:nums=[5,7,7,8,8,10],target=8输出:[3,4]代码实现classSolution{public:intleft_index(vector<int>&a
分类:
编程语言 时间:
2020-02-26 14:21:11
阅读次数:
74
二分查找和斐波那契查找 1 #include<iostream> 2 using namespace std; 3 class Fib{ 4 public:int f,g; 5 Fib(int n) 6 { 7 f=1,g=0; 8 while(g<n) 9 next();}//因构造函数返回函数 ...
分类:
其他好文 时间:
2020-02-25 14:37:59
阅读次数:
77
/* 先定数组长度,无法获取一个Int数组的真实长度 如 int a[20]={1,2} 实际长度是多少呢? sizeof(a)/sizeof(a[0])是算不出来的!只能自己写函数了! 注意,二分查找是查找一个有序的序列,这里的演示的有序,有两种 1、bindSearch函数自身提供的数组(索引器 ...
分类:
其他好文 时间:
2020-02-25 09:48:26
阅读次数:
45
1,在C中,我们常用的查找有两种: ①顺序查找 ②二分查找 2,顺序查找:有一个数列:{ 23,1,34,89,101 } 猜数游戏:从键盘中任意输入一个数,判断数列中是否包含该数【顺序查找】 如果找到了,就提示找到,并给出下标值。找不到就提示 没有 1 int seqSearch(int arr[ ...
分类:
其他好文 时间:
2020-02-25 09:38:32
阅读次数:
57