题目: 解答: 默认升序(降序也只是改一点代码,不影响) 原理:如果左侧最大值大于中间的最小值,则一定会被中间序列包括;同理,如果右侧最小值大于中间的最大值,则一定会被中间序列包括。 一遍遍历 + 两个指针(两次扫描可一次遍历完成) 1、从前向后扫描数组,判断当前array[i]是否比max小,是则 ...
分类:
编程语言 时间:
2020-05-05 20:22:41
阅读次数:
59
题目: 解答: 1 class Solution { 2 public: 3 void merge(vector<int>& A, int m, vector<int>& B, int n) 4 { 5 int len1 = m - 1; 6 int len2 = n - 1; 7 int len ...
分类:
编程语言 时间:
2020-05-05 20:13:16
阅读次数:
67
题目: 解答: 先排序,然后设定返回值为最大,用双指针求得结果。 1 class Solution { 2 public: 3 int smallestDifference(vector<int>& a, vector<int>& b) 4 { 5 sort(a.begin(),a.end()); ...
分类:
编程语言 时间:
2020-05-05 20:11:14
阅读次数:
61
题目: 解答: 方法一:会超时间 1 class Solution { 2 public: 3 void rotate(vector<vector<int>>& matrix) 4 { 5 // 思路是: 转置 + 反转每一行 6 7 int len = matrix.size(); 8 9 // ...
分类:
编程语言 时间:
2020-05-05 20:09:54
阅读次数:
66
题目: 解答: 1 class Solution { 2 public: 3 vector<vector<int>> res; 4 5 vector<vector<int>> subsets(vector<int>& nums) 6 { 7 // 记录走过的路径 8 vector<int> trac ...
分类:
编程语言 时间:
2020-05-05 19:54:39
阅读次数:
60
// 面试题66:构建乘积数组 // 题目:给定一个数组A[0, 1, …, n-1],请构建一个数组B[0, 1, …, n-1],其 // 中B中的元素B[i] =A[0]×A[1]×… ×A[i-1]×A[i+1]×…×A[n-1]。不能使用除法。 #include <cstdio> #inc ...
分类:
编程语言 时间:
2020-04-14 00:42:37
阅读次数:
70
面试题66:构建乘积数组 题目描述 给定一个数组A[0, 1, …, n 1],请构建一个数组B[0, 1, …, n 1],其中B中的元素B[i] =A[0]×A[1]×… ×A[i 1]×A[i+1]×…×A[n 1]。不能使用除法。 问题分析 如果没有不能使用除法的限制,可以用公式B[i]=A ...
分类:
编程语言 时间:
2020-02-01 19:22:21
阅读次数:
93
面试题11:旋转数组的最小数字 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为0,请 ...
分类:
编程语言 时间:
2019-04-11 16:39:48
阅读次数:
170
1.冒泡排序 2.二分法 public static int getT(int [] a ,int tag){ int first =0; int end = a.length; for (int i = 0; i < a.length; i++) { int temp = (first+end)/ ...
分类:
编程语言 时间:
2018-03-04 21:13:55
阅读次数:
156
1.写函数创建长度为10的数组,数组中的元素为递增的奇数,首项为1. 代码如下: <?php function arrsort($first,$length){ $arr = array(); for($i=$first;$i<=$length;$i++){ $arr[] = $i*2-1; } r ...
分类:
编程语言 时间:
2017-07-22 19:50:03
阅读次数:
198