1. 二维数组查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。
思路

1、可以考虑对每行进行二分查找

2、以右上或左下为起点,这里选择右上,依次向左扫描,如果当前值小于target,则row++(每行最后一个是该行最大的,如果它都小了,这一行都小了),如果大于,则col–(同理),直至扫描完。

代码1:以右上为起点

class Solution {
public:bool Find(int target, vector<vector<int> > array) {int row = array.size(), r = 0;//从第一行开始,注意array.size()是指vector中的向量个数,而 array[i].size()是指vector[i]中的向量个数。if(row == 0) return false;int col = array[0].size(),c = col -1;//从右上角开始即第一行最后一列while(r < row && c >= 0)//判断r和c的合理范围:r是每次++,所以其范围不能超过行数,c每次--,所以其范围不能小于0{if(array[r][c]== target) return true ;//找到目标数字if(array[r][c]<target) r++;//每行的最后一个元素都比目标数字小,说明该行的所有元素都要小于目标数字,故访问下一行的最后一个元素else  c--;//该行的最后一个元素大于目标数字,所以访问该行的倒数第二个元素,以此类推}return false;}
};

代码2:以左下为起点

class Solution {
public:bool Find(int target, vector<vector<int> > array) {int row = array.size()-1;int col = array[0].size()-1,  cl = 0;if(row < 0) return  false;while(row >= 0 && cl <= col){if(target == array[row][cl]) return true;else if (target > array[row][cl]) cl++;else   row--;}return false;}
};//代码3:二分查找,其时间复杂度为nlognpublic class Solution {public boolean Find(int [][] array,int target) {for(int i=0;i<array.length;i++){int low=0;int high=array[i].length-1;while(low<=high){int mid=(low+high)/2;if(target>array[i][mid])low=mid+1;else if(target<array[i][mid])high=mid-1;elsereturn true;}}return false;}
}

2. 调整数组顺序使奇数位于偶数前面

输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

思路:(1)新开数组直接模拟,或者用插入排序等方法
代码1

class Solution {
public:void reOrderArray(vector<int> &array) {vector<int> arr;for(int i = 0; i < array.size(); i++)if((array[i] & 1) == 1)arr.push_back(array[i]);for(int i = 0; i < array.size(); i++)if((array[i] & 1) == 0)arr.push_back(array[i]);for(int i = 0; i < arr.size(); i++)array[i] = arr [i];}
};

(2)首先,设置前指针指向第一个数,并且只向后移动;
然后,.设置第二个指针指向最后一个数,并且只向前移动;
最后,在两个指针相遇之前,第一个指针总是位于第二个指针的前面。如果第一个指针指向的数字是偶数,并且第二个指针指向的数字是奇数,我们就交换这两个数字。

测试不能通过!!!原来快排是不稳定的,而此题目要求相对位置不变!!!
其实,要想保证原有次序,则只能顺次移动或相邻交换。那么依然设置两个指针:
首先,begin从左向右遍历,找到第一个偶数;
然后,from从begin+1开始向后找,直到找到第一个奇数;
接着,将[begin,…,from-1]的元素整体后移一位;
最后将找到的奇数放入begin位置,然后begin++。

代码2

class Solution {
public:void reOrderArray(vector<int> &array) {int begin = 0, end, tmp;while(begin < array.size()){//找到第一个偶数while(begin < array.size() && (array[begin] & 1) == 1)begin ++;end = begin + 1;//找到第一个奇数while(end < array.size() && (array[end] & 1) == 0)end ++;//将[begin,…,end-1]的元素整体后移一位if(end < array.size()){tmp = array[end];for(int i = end - 1; i >= begin; i--)array[i+1] = array[i];array[begin] = tmp;}else break;}}
};

3. 顺时针打印矩阵

输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.

思路:
把矩阵看成由若干个顺时针方向的圈组成,循环打印矩阵中的每个圈,每次循环打印一个圈。打印一圈通常分为四步,第一步从左到右打印一行;第二步从上到下打印一列;第三步从右到左打印一行;第四步从下到上打印一列。设置四个变量left,right,top,below,用于表示圈的方位,每一步根据起始坐标和终止坐标循环打印。

注意:最后一圈有可能不需要四步,有可能只有一行,只有一列,只有一个数字,因此我们要仔细分析打印每一步的前提条件:

打印第一步,第一步总是需要的。
在这里插入图片描述
打印第二步的前提条件是(top<below)
在这里插入图片描述
打印第三步的前提条件是(top<below && left<right)
在这里插入图片描述

打印第四步的前提条件是(top+1<below&&left<right)
`在这里插入图片描述

class Solution {
public:vector<int> printMatrix(vector<vector<int> > matrix) {vector<int> res;if(matrix.empty()) return res;int row = matrix.size();int col = matrix[0].size();int top = 0, below = row - 1;int left = 0, right = col -1;while(left <= right && top <= below){for(int i=left; i<=right; ++i)res.push_back(matrix[top][i]);if(top < below)for(int i=top+1; i<=below; ++i)res.push_back(matrix[i][right]);if(top < below && left < right)for(int i=right-1; i>=left; --i)res.push_back(matrix[below][i]);if(top + 1 < below && left <right)for(int i=below-1; i>=top + 1; --i)res.push_back(matrix[i][left]);++ left; -- right; ++ top; --below;}return res;}
};

4. 数组中出现次数超过一半的数字

数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字。例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2。如果不存在则输出0。

思路
way1(王道):数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的和还要多。因此我们可以考虑在遍历数组的时候保存两个值:一个是数组中的一个数字,一个是次数。
(1)当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次数加1;
(2)如果下一个数字和我们之前保存的数字不同,则次数减1。
(3)如果次数为零,我们需要保存下一个数字,并把次数设为1。

代码

class Solution {
public:int MoreThanHalfNum_Solution(vector<int> numbers) {if(numbers.size() == 0) return 0;int size = numbers.size();int res, count = 0;for(int i = 0; i < size; i++){if(count == 0){count ++;res = numbers[i];}else if(numbers[i] == res)//如果遍历的该元素和我们之前保存的res值相同,则count++count ++;else //否则count--count --;}//从头遍历,重新计算出现次数最多的元素的总次数count = 0;for(int i = 0; i < size; i++)if(numbers[i] == res) count ++;if(count > (size >> 1))  return res; //右移相当于除2,其时间效率要大于除法运算return 0;}
};

way2(利用快排):数组中有一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的和还要多。在随机快速排序算法中,我们先在数组中随机选择一个数字,然后调整数组中数字的顺序,使得比选中的数字小数字都排在它的左边,比选中的数字大的数字都排在它的右边。如果这个选中的数字的下标刚好是n/2,那么这个数字就是数组的中位数。如果它的下标大于n/2,那么中位数应该位于它的左边,我们可以接着在它的左边部分的数组中查找。如果它的下标小于n/2,那么中位数应该位于它的右边,我们可以接着在它的右边部分的数组中查找。

代码

class Solution {
public:int MoreThanHalfNum_Solution(vector<int> numbers) {if(numbers.size() == 0) return 0;int start = 0, end = numbers.size()-1;int mid = numbers.size() >> 1; //右移一位等价于除2,其时间效率高于除法运算int p = Partition(numbers, start, end);while(p != mid){if(p > mid)end = p - 1;elsestart = p + 1;p = Partition(numbers, start, end);}int res = numbers[mid], count = 0;for(int i = 0; i < numbers.size(); i++)if(numbers[i] == res)count ++;if(count > mid) return res;return 0;}//快速排序算法:使得p左边数值小于p,p右边数值大于pint Partition(vector<int> a, int s, int e){int p = a[s];while(s < e){while(s < e && a[e] >= p) e--;if(s < e)  a[s] = a[e];while(s < e && a[s] <= p) s++;if(s < e)  a[e] = a[s];}a[s] = p;return s;}
};

5. 最小的k个数

输入n个整数,找出其中最小的K个数。例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,。

思路
(1)可以先创建一个大小为k的数据容器来存储最小的k个数字,从输入的n个整数中一个一个读入放入该容器中,如果容器中的数字少于k个,按题目要求直接返回空;
(2)如果容器中已有k个数字,而数组中还有值未加入,此时就不能直接插入了,而需要替换容器中的值。按以下步骤进行插入:
a. 先找到容器中的最大值;
b. 将待查入值和最大值比较,如果待查入值大于容器中的最大值,则直接舍弃这个待查入值即可;如果待查入值小于容器中的最大值,则用这个待查入值替换掉容器中的最大值;
c. 重复上述步骤,容器中最后就是整个数组的最小k个数字。
对于这个容器的实现,我们可以使用最大堆的数据结构,利用C++的标准模板(STL)的priority_queue来实现。

小知识 :priority_queue(优先队列)
优先队列容器与队列一样,只能从队尾插入元素,从队首删除元素。但是它有一个特性,就是默认情况下队列中最大的元素总是位于队首,所以出队时,并非按照先进先出的原则进行,而是将当前队列中最大的元素出队。
priority_queue<int,vector, less > pq1;     // 使用递增less函数对象排序,大根堆(默认情况下为大根堆,即priority_queue q;)
priority_queue<int,vector, greater > pq2;   // 使用递减greater函数对象排序,小根堆

基本操作:

empty()    如果队列为空,则返回真

pop()    删除对顶元素,删除第一个元素

push()    加入一个元素

size()     返回优先队列中拥有的元素个数

top()     返回优先队列对顶元素,返回优先队列中有最高优先级的元素

在默认的优先队列中,优先级高的先出队。在默认的int型中先出队的为较大的数。

代码

class Solution {
public:vector<int> GetLeastNumbers_Solution(vector<int> input, int k) {vector<int> res;if(input.size() < k || k <= 0) return res;priority_queue<int, vector<int>,less<int>> Q;//利用priority_queue来实现大根堆for(int i = 0; i < input.size(); i++){if(Q.size() < k)Q.push(input[i]);elseif(input[i] < Q.top()){Q.pop();Q.push(input[i]);}}while(!Q.empty()){res.push_back(Q.top());Q.pop();}return res;}
};

6. 连续子数组的最大和

HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。给一个数组,返回它的最大连续子序列的和,你会不会被他忽悠住?(子向量的长度至少是1)

思路:分析计算连续子数组最大和的规律。下图是我们计算数组(1,-2,3,10,-4,7,2,-5)中子数组的最大和的过程。设置两个辅助变量,累加子数组和cur_sum、最大子数组和max_sum。初始的累加子数组和cur_sum为数组的第一个元素,初始的最大子数组和max_sum为数组的第一个元素。更新cur_sum方法:如果cur_sum>0,则继续累加;否则用下一个元素值替换累加的子数组和。更新max_sum方法:如果cur_sum >max_sum,则用累加的子数组和替换最大的子数组和。

在这里插入图片描述
代码

class Solution {
public:int FindGreatestSumOfSubArray(vector<int> array) {if(array.size() == 0) return 0;int cursum = array[0], maxsum = array[0];//注意这里的赋值不能将其赋值为0,因为当出现数组元素为全为负数时,此时maxsum会一直为0,出现错误。for(int i = 1; i < array.size(); i++){if(cursum < 0) cursum = 0;cursum += array[i];if(cursum > maxsum) maxsum = cursum;}return maxsum;}
};

7.把数组排成最小的数

输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。

思路
(1)我们可以先思考只有两个数字的情况: [3,32] ,可以看出来 332>323 因此需要把数组改变为 [32,3] ;
(2)对于有三个数字的情况: [3,32,321] 我们两两进行比较, 332>323 于是,将 3 与 32 交换位置变成 [32,3,321] 而 3321>3213 于是将 3 与 321 继续交换位置到 [32,321,3] ;接着我们继续使用 32 进行比较,由于 32321>32132 将 32与321 进行位置交换为 [321,32,3] 此时,将数组链接起来变成 321323 即为最小的数。
具体思路:
(1)先将数字列表转化成字符串链表,这样便于在一个字符串后面直接加上另外一个字符串。也就是 “3”+“321”=“3321” 。
(2)构造一个比较函数,当 str1+str2>str2+str1 时我们认为字符串 str1>str2 。
(3)将字符串列表按照比较函数的规定进行冒泡排序(或其它方法排序),将定义为”大”的字符串放到最后。而”小”的字符串放在前面。最后将字符串列表链接起来,便是所求。对 sort() 函数进行比较函数cmp的传参,可以利用sort()函数直接对字符串列表进行排序。

代码

class Solution {
public:string PrintMinNumber(vector<int> numbers) {string res;sort(numbers.begin(), numbers.end(), cmp);for(int i=0; i<numbers.size(); i++){res += to_string(numbers[i]);}return res;}static bool cmp(int a, int b){string sa = to_string(a);string sb = to_string(b);string ca = sa + sb;string cb = sb + sa;return ca < cb;//当ca小于cb,返回true,此时交换位置,如果返回为false,此时不交换位置,从而保证小 的字符串在前面}
};

8. 数组中的逆序对

在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数P。并将P对1000000007取模的结果输出。 即输出P%1000000007

思路
先把数组分隔成子数组,统计出子数组内部的逆序对的数目,然后在统计出两个相邻子数组之间的逆序对的数目。合并完两个已排序的子数组后,要更新数组。
以数组{7,5,6,4}来分析统计逆序对的过程:
在这里插入图片描述
在这里插入图片描述
(a) P1 指向的数字大于P2指向的数字,表明数组中存在逆序对。P2 指向的数字是第二个子数组的第二个数字, 因此第二个子数组中有两个数字比7 小。把逆序对数目加2,并把7 复制到辅助数组,向前移动P1 和P3 。
(b) P1指向的数字小子P2指向的数字,没有逆序对。把P2指向的数字复制到辅助数组,并向前移动P2和P3
(c)P1 指向的数字大于P2指向的数字,因此存在逆序对。由于P2指向的数字是第二个子数组的第一个数字,子数组中只有一个数字比5 小。把逆序对数目加1 ,并把5复制到辅助数组,向前移动P1和P3。

代码

class Solution {
public:int InversePairs(vector<int> data) {if(data.size() <= 1) return 0;vector<int> copy(data);//辅助数组,初始化构造拷贝,相当于将vector data数据复制一份给了vector copy。return Getcount(data, copy, 0, data.size()-1);}int Getcount(vector<int> &data, vector<int> &copy, int start, int end){if(start == end){copy[start] = data[start];return 0;}int count  = 0;int length = (end - start) / 2;int left = Getcount(copy, data, start, start+length)%1000000007; // 交换copy data,保证此时用的data是最新的,函数保证每轮copy为最新。int right = Getcount(copy, data, start+length+1, end)%1000000007;int i = start+length, j = end, index = end;while(i >= start && j >= start+length+1){if(data[i] > data[j]) {count += j - start - length;count = count % 1000000007;copy[index--] = data[i--];}else copy[index--] = data[j--];}while(i >= start) copy[index--] = data[i--];while(j >= start+length+1) copy[index--] = data[j--];return (count + left + right) % 1000000007;}
};

9. 在排序数组中查找数字

题目一:数字在排序数组中出现的次数

统计一个数字在排序数组中出现的次数。

思路
比如:排序数组为{1,2,3,3,3,4,5},那么数字3出现的次数就是3。
way1:遍历数组肯定就能知道某个数字的个数,此时的时间复杂度O(n)。

way2:除此之外,我们注意到,任务本质上是查找问题,而且是排序好的数组,可以尝试用二分查找算法,这样我们可以找到一个3,然后根据这个3向数组的两端遍历,找到所有的3,但是如果3是n个呢?这个算法本质上时间复杂度还是O(n)。

way3:.最后,我们发现在排序数组中,如果我们知道了第一个3和最后一个3出现的位置,那么其实也就知道了个数,那么我们能否在第一次使用二分查找之后,继续使用二分法,找到两端的3。

代码:

class Solution {
public:int GetNumberOfK(vector<int> data ,int k) {if(data.size() <= 0) return 0;int first = Findfirst(data, k, 0, data.size()-1);int last = Findlast(data, k, 0, data.size()-1);if(first != -1 && last != -1)return last - first + 1;return 0;//当k不在排序数组时则返回0,如果没有这一句话,则出现k不在数组中时,返回的则为1}int Findfirst(vector<int> data, int k, int begin, int end){if(begin > end) return -1;int mid = (begin + end) / 2;if(data[mid] == k){if(mid == 0 || data[mid -1] != k) return mid;//当中间值等于k时,如果中间值的左侧不等于k,则说明mid则为k值在数组中第一次出现的位置else end = mid -1;//否则,k值在数组中第一次出现的位置在mid的值的左侧。}else if(data[mid] > k) end = mid -1;else begin = mid + 1;return Findfirst(data, k, begin, end);}int Findlast(vector<int> data, int k, int begin, int end){if(begin > end) return -1;int mid = (begin + end) / 2;if(data[mid] == k){if(mid == data.size()-1 || data[mid + 1] != k) return mid;//当中间值等于k时,如果中间值的右侧不等于k,则说明mid则为k值在数组中最后一次出现的位置else begin = mid + 1;//否则,k值在数组中最后一次出现的位置在mid的值的右侧。}else if(data[mid] > k) end = mid - 1;else begin = mid + 1;return Findlast(data, k, begin, end);}
};

10. 数组中数字出现的次数

题目一:找出数组中只出现一次的两个数字

一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。

思路:异或运算符^:0与其他数字异或的结果是那个数字,相等的数字异或得0
从头到尾依次异或数组中的每一个数,那么最终的结果就是那个只出现一次的数字,比如下面这个例子
例子:2 3 4 2 3
所有数字依次异或运算:2 xor 3 xor 4 xor 2 xor 3 = (2 xor 2) xor (3 xor 3) xor 4= 0 xor 0 xor 4 = 4
最终结果4就是我们要找的那个只出现一次的数字。

数组里包含了两个只出现一次的数字,那么所有数字依次异或的结果就是这两个只出现一次的数字的异或结果。我们要想办法利用这个异或结果,把数组分为两个子数组,一个子数组包含一个只出现一次的数字,另一个数组包含另一个只出现一次的数字。由于这两个只出现一次的数字肯定不相等,那么这个异或结果肯定不为0,也就是说在这个结果数字的二进制表示中至少就有一位为1。我们在结果数字中找到第一个为1的位的位置,记为第N位。现在我们以第N位是不是1为标准把原数组中的数字分成两个子数组,第一个子数组中每个数字的第N位都为1,而第二个子数组的每个数字的第N位都为0。
举个栗子:1 2 3 4 2 3

 所有数字异或结果 = 1 xor 4二进制表示为:  001xor 100_______101异或结果的二进制位101,第一个为1的位的位置N=1。那么,数组所有数的二进制表示中,第N(N=1)位为1的的数为1 3 3,第N(N=1)位为0的的数为2 2 4.
class Solution {
public:void FindNumsAppearOnce(vector<int> data,int* num1,int *num2) {if(data.size() < 2)return ;int t = 0;for(int i = 0; i < data.size(); i++)t ^= data[i];//数组全部异或找出只出现一次的两个数字的异或结果,即1 xor 4(上述例子)int indexOf1 = 0;//找出异或结果中二进制位中两个数字不相同的那一位(要么为0,要么为1)while (((t & 1) == 0) && (indexOf1 < 32)){t = t >> 1;++ indexOf1;}*num1 = *num2 = 0;//以N位为1划分为两组,并进行异或。for(int i = 0; i < data.size(); i ++){if((data[i] >> indexOf1) & 1) *num1 ^= data[i];else*num2 ^= data[i];}}
};

题目二:在一个数组中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。

代码:(不是太懂)

int findNum(int *arr, int n)
{int bit[32] = {0};for(int i = 0; i < n; i++){int b = 1;for(int j = 31; j >= 0; j--){int bv = arr[i]&b;if(bv != 0) bit[j]++;b <<= 1;}}int res = 0;for(int j = 0; j < 32; j++){res <<= 1;res += bit[j]%3;}return res;
}

11. 和为s的两个数字

输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的。

思路:首先正常想的话,分别用一个跟其他所有比,时间复杂度过高。所以为了解决复杂度问题,这里采用st指向前部,ed指向后部,当a[st]+a[ed]小的时候,st++,大的时候ed–即可。因为题目要求乘数最小,根据数学计算,68<77,49<58,等等,所以可以保证该思路正确。

代码

class Solution {
public:vector<int> FindNumbersWithSum(vector<int> array,int sum) {vector<int> res;int begin = 0, end = array.size()-1;while(begin < end){int cursum = array[begin] + array[end];if(cursum == sum){res.push_back(array[begin]);res.push_back(array[end]);break;}else if(cursum < sum)begin ++;elseend --;}return res;}
};

12. 数组中重复的数字

在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是第一个重复的数字2。

思路
把这个数组叫做numbers,首先,这是一个无序的数组,但是所有的元素范围都在【0,n-1】
也就是说,如果这个数组是有序的,那么第i个位置的数就应该等于i,也就是numbers[i] = i 。那如果numbers[i]不等于i呢,比如下面的图,我们需要看numbers[i]和numbers[numbers[i]]的关系,分为两种情况:
在这里插入图片描述
代码

bool duplicate(int numbers[], int length, int* duplication) {if(length <= 0 || numbers == nullptr)return false;for(int i = 0; i < length; i ++)if(numbers[i] > length - 1 || numbers[i] < 0)//不在范围return false;for(int i = 0; i < length; i ++){if(numbers[i] == i)continue;else {if (numbers[i] == numbers[numbers[i]]){*duplication = numbers[i];//获取重复的数字return true;}else {int tmp = numbers[i];numbers[i] = numbers[numbers[i]];numbers[numbers[i]] = tmp;}}}return false;}

13. 构建乘积数组

给定一个数组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[0] = A[1] * A[2] * … * A[n-1],B[n-1] = A[0] * A[1] * … * A[n-2];)

思路
首先,仔细理解题意,B[i]是A数组所有元素的乘积,但是没有A[i]项,如果没有不能使用除法这一限制,我们可以直接将A数组的所有元素相乘,得到一个乘积,记为res,则使用公式B[i] = res/A[i]即可得到B这个乘积数组。

现在有不能使用除法的限制,只能使用其他办法,当然,一个最直观的办法是每次计算B[i]时,都计算A数组中n-1个数字的乘积,显然这需要O(n^2)的时间复杂度。

仔细分析可以发现,这种暴力解法有很多重复的计算,我们可以通过一个简单的改变来避免这些重复计算。具体如下:
我们可以把B[i]=A[0]*A[1]A[2]···*A[i-1]A[i+1]···*A[n-1]看成是两部分的乘积,第一部分是i之前的所有项,记为C[i],即C[i]=A[0]*A[1]A[2]···A[i-1],第二部分是i之后的所有项,记为D[i],即D[i]=A[i+1]···*A[n-1]。
经过这样的分隔后,数组B就相当于可以用如下的矩阵来构建,B[i]为矩阵中第i行所有元素的乘积,即B[i] = C[i] *[i]。
在这里插入图片描述
首先B[i]=C[i]*D[i],而C[i]可以通过自上而下的顺序进行计算,即C[0]=1,C[i]=C[i-1]*A[i-1],同理,D[i]可以通过自下而上的顺序进行计算,即
D[n-1]=1,D[i]=D[i+1]*A[i+1]。

代码

class Solution {
public:vector<int> multiply(const vector<int>& A) {vector<int> B;if(A.size() <= 0) return B;int n = A.size();int *C = new int[n];int *D = new int[n];C[0] = 1; D[n-1] = 1;for(int i = 1; i < n; i ++)C[i] = C[i-1] * A[i-1];for(int i = n - 2; i >= 0; i --)D[i] = D[i+1] * A[i+1];for(int i = 0; i < n; i ++)B.push_back(C[i] * D[i]);return B;}
};

14.机器人运动范围

地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?

思路
1.从(0,0)开始走,每成功走一步标记当前位置为true,然后从当前位置往四个方向探索,
返回1 + 4 个方向的探索值之和。
2.探索时,判断当前节点是否可达的标准为:
1)当前节点在矩阵内;
2)当前节点未被访问过;
3)当前节点满足limit限制。

代码

class Solution {
public:int movingCount(int threshold, int rows, int cols){//vector标志每个节点是否有被访问过vector<int> vec(rows*cols, 0);return getCount(threshold, vec, 0, 0, rows, cols);}int getCount(int threshold, vector<int> &vec, int r, int c, int rows, int cols){int count = 0;//当前结点并且向四个方向探索if(r < rows && r >=0 && c >= 0 && c < cols && vec[r*cols+c] == 0 && (getSum(r)+getSum(c)) <= threshold){vec[r * cols + c] = 1;count = 1 + getCount(threshold, vec, r+1, c, rows, cols)+ getCount(threshold, vec, r-1, c, rows, cols)+ getCount(threshold, vec, r, c+1, rows, cols)+ getCount(threshold, vec, r, c-1, rows, cols);}return count;}//对行列坐标求位数和int getSum (int i){int sum = 0;while(i > 0){sum += (i % 10);i = i / 10;}return sum;}
};

15. 滑动窗口的最大值

给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,5,1}, {2,3,4,[2,6,2],5,1}, {2,3,4,2,[6,2,5],1}, {2,3,4,2,6,[2,5,1]}。

思路
采用双端队列,队列中的头节点保存的数据比后面的要大。
比如当前假如的数据比队尾的数字大,说明当前这个数字最起码在从现在起到后面的过程中可能是最大值
,而之前队尾的数字不可能最大了,所以要删除队尾元素。
此外,还要判断队头的元素是否超过size长度,由于存储的是下标,所以可以计算得到;
特别说明,我们在双端队列中保存的数字是传入的向量的下标;

代码

class Solution {
public:vector<int> maxInWindows(const vector<int>& num, unsigned int size){vector<int> res;if(num.size() < size || size <= 0)return res;deque<int> Q;for(int i = 0; i < num.size(); i ++){////从后面依次弹出队列中比当前num值小的元素,同时也能保证队列首元素为当前窗口最大值下标while(!Q.empty() && num[i] > num[Q.back()])Q.pop_back();Q.push_back(i);////当当前窗口移出队首元素所在的位置,即队首元素坐标对应的num不在窗口中,需要弹出if(Q.front() + size <= i)Q.pop_front();///当滑动窗口首地址i大于等于size时才开始写入窗口最大值if(size <= i + 1)res.push_back(num[Q.front()]);}return res;}
};
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. python--决策树参数&可视化小例

    以下内容笔记出自‘跟着迪哥学python数据分析与机器学习实战’,外加个人整理添加,仅供个人复习使用。首先,树模型参数有: 1. criterion gini or entopy 2. splitter best or random 前者是在所有特征中找到最好切分点,后者是在部分特征中(数据量比较大时) 3. max_feature…...

    2024/4/19 4:37:13
  2. 03-golang基本数据类型

    golang中有4种基础数据类型,分别是整型、浮点型、布尔型和字符串型。 整型 golang中整型分为有符号整型和无符号整型。其中按照数据占用空间大小的不同,有符号整型分为了5种,int,int8,int16,int32,int64,对应的无符号整型uint,uint8,uint16,uint32,uint64。每个类型后面的数…...

    2024/5/8 7:39:58
  3. php返回数据格式

    直接使用json文件返回的数据:使用接口返回的数据:返回的其实是html格式 所以返回的res.data是undefined解决:1.接口处理:2.页面处理:...

    2024/4/16 0:55:20
  4. Grid 网格二维布局---笔记

    Grid 二维布局 基础知识 首先,你必须使用 display: grid 将容器元素定义为一个 grid(网格) 布局,使用 grid-template-columns 和 grid-template-rows 设置 列 和 行 的尺寸大小,然后通过 grid-column 和 grid-row 将其子元素放入这个 grid(网格) 中。 重要术语网格容器(Grid…...

    2024/5/3 22:18:46
  5. 第一个 MyBatis 程序

    第一个 MyBatis 程序 在初步对 MyBatis 有一个认识之后,我们来写 MyBatis 的第一个程序。 我们学习一个知识,肯定经历 宏观 —> 微观 这样一个过程,学习 MyBatis 也不例外。我们要先了解并熟悉 MyBatis 执行的具体流程,再根据每个流程进行详细的分析。这是我推荐的一种学…...

    2024/5/8 10:30:25
  6. jQuery判断checkbox是否选中以及赋值

    /判断是否选中: if ($("#customControlValidationSuccess4").is(:checked))//赋值,设置checkbox选中或不选中: $("#customControlValidationSuccess4").attr("checked", true);//一个例子:点击checkbox后切换flag状态 <input type="…...

    2024/5/8 6:38:24
  7. 个人笔记

    Day Five 类中:成员变量 -> field 成员方法 -> method控制台输入类Scanner: new Scanner(System.in) nextLine() (获取控制台输入的一行字符串,以回车键结束) next() (获取控制台输入的一个字符串,以回车或空格结束) nextInt() (获取控制台输入的一个整型变量) …...

    2024/5/7 18:43:12
  8. pytorch官方文档笔记——pytorch基础

    import torch import torchvision print(torch)随机生成x=torch.rand(5,3) print(x)tensor([[0.8781, 0.6810, 0.4982],[0.7308, 0.6844, 0.8016],[0.9965, 0.7614, 0.0788],[0.6502, 0.6808, 0.0835],[0.0102, 0.9330, 0.2545]]) 构造一个矩阵,不初始化 x=torch.empty(5,3)…...

    2024/5/8 1:44:35
  9. 深入学习Linux之for循环

    第一种循环 #!/bin/bash for i in 1 2 3 doecho $idone输出: 1 2 3将文件名.sh依次写入ls.log中,然后知道他有多少个文件 #!/bin/bash y=1 ls *.sh > ls.log for i in $(cat ls.log)doecho $yy=$(($y+1))echo $idone第二种循环 计算1到100的和 #!/bin/bash sum=0 for (( …...

    2024/4/16 0:55:20
  10. xctf_Robots

    Robots [目标] Robots协议 [环境] Windows [工具] 浏览器 [分析] 1.根据题目可看出robots协议,因此第一想到的是robots.txt2.disallow 可看出这是爬虫协议: User—Agent: 定义搜索引擎类型(定义robots对哪个搜索引擎生效) User—Agent:BaiduSpider (定义该协议只对百度搜…...

    2024/5/8 7:50:31
  11. Java数据结构-单链表

    前言 本篇文章是Java数据结构与算法系列的第三篇文章,经过前面两篇关于队列的学习之后,我们现在开始学习链表。 个人博客网站:http://lzmweb.cn,欢迎大家前来观看! 认识链表 链表是一种常用的数据结构,它是用于存储数据的。链表,顾名思义他就是一个表,而且数据是以链式…...

    2024/5/8 10:15:11
  12. java文件上传简单实现

    1 准备工作 对于文件上传,浏览器在上传的过程中是以流的形式提交到服务器端的。一般选择采用apache的开源工具common-fileUpload这个文件上传组件 common-fileUpload是依赖common-io这个包的,所以还需要下载这个包 2 使用类介绍 注意事项:为保证服务器安全,上传文件应该放在…...

    2024/5/7 15:41:26
  13. 02-golang程序基本结构

    命名规则 go语言中,函数名、变量名、常量名、方法名等所有的命名都遵循一个规则:一个名字必须以字母或下划线开头,后面可以跟任意数量的字母、下划线和数字(注意不要跟标点符号哦)。 go语言中关键字有25个,关键字不能用来做自定义名字,只能在特定语法中使用。 break …...

    2024/4/16 0:55:15
  14. innodb引擎之ibd文件与undo log

    1 通过对一行数据的解读来了解InnoDB是怎么组织一行数据的。 2 ROLL POINTER并不是一串简单的数字,背后是undo log的身影,也是实现MVCC的基础。 https://juejin.im/post/5f06b2e1f265da22f511d524...

    2024/5/7 22:23:20
  15. Flex 布局 flex-grow 占用空间

    1、占用空间 flex-grow 没有设置 flex-grow 时:s1、s2、s3、s4 各宽度100,预留多余空白处。s2设置 flex-grow 时:占用了多余空白处,增长了自身宽度,没有了多余的空白处,自身宽度也从宽度100加到了114。s2和s3都设置了flew-grow时:同时平分了多余的空白处,并且自身宽度都…...

    2024/5/7 21:53:54
  16. 傅里叶级数

    设存在函数f(x),则f(x)的傅里叶级数为其中狄里克雷定理设f(x)为周期函数,T=2,且在[-,]上满足除有限个第一类间断点外都连续只有有限个极值点 则f(x)的傅里叶函数在[-,]上处处收敛,且收敛于f(x),当x为连续点,x为间断点,x=...

    2024/5/8 8:30:31
  17. xctf_Give_you_flag

    Give_you_flag [目标] 填充二维码 [环境] Windows [工具] Stegsolve [分析] 1.打开gif图片会发现是动图,经过一遍浏览发现有二维码,因此怀疑答案在此 2.运用Stegsolve工具进行分析动图,以便得到二维码那一帧发现二维码缺少三个定位点,因此需要补全 在进行得到二维码这一帧时…...

    2024/4/16 0:54:39
  18. Adobe Premiere Pro2020中文版

    Adobe Premiere Pro CC 2020是一款常用的视频编辑软件,由Adobe公司推出。是一款编辑画面质量比较好的软件,有较好的兼容性,且可以与adobe公司推出的其他软件相互协作。目前这款软件广泛应用于广告制作和电视节目制作中。Premiere带来了“即时电影”(InstantMovie),可快速将…...

    2024/4/1 3:37:27
  19. 流程控制——多重循环和跳转语句

    多重循环指一个循环语句的循环体中在包含循环语句,又称嵌套循环。循环语句内可以嵌套多层循环。同时,不同的循环语句可以相互嵌套循环。 多重循环语句的语法格式如下: while(循环条件1){ 循环语句1 for(循环条件2){ 循环语句2 } } 一、 这是while语句和for语句嵌套…...

    2024/5/7 22:59:01
  20. C语言变量类型

    @C语言基础复习 C语言基础复习 基本变量类型 int类型 int 整形 占4字节Byte 32bit int 的表示范围 -2^31 ~ 2^31-1 (-2147483648~2147483647) 超过int的上下限会发生溢出无符号整型 unsigned int 同样占有四个字节,但是把nt的最高位也用来表示数字, 因此范围比int大,但是却…...

    2024/4/16 0:55:45

最新文章

  1. (超简单)SpringBoot中简单用工厂模式来实现

    简单讲述业务需求 业务需要根据不同的类型返回不同的用户列表&#xff0c;比如按角色查询用户列表、按机构查询用户列表&#xff0c;用户信息需要从数据库中查询&#xff0c;因为不同的类型查询的逻辑不相同&#xff0c;因此简单用工厂模式来设计一下&#xff1b; 首先新建一个…...

    2024/5/8 11:02:40
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/7 10:36:02
  3. 手机无线投屏到windows11电脑

    1 安装无线投影组件 2 电脑端打开允许其他设备投影的开关 3 手机找到投屏选项 4 手机搜索可用设备连接即可 这里的官方文档给的不太好,给了一些让人眼花撩乱的信息,以下是经过整合的有效信息...

    2024/5/7 17:09:12
  4. Chrome 浏览器无法保存或自动填充密码

    Chrome 浏览器无法保存或自动填充密码 分类 平时使用 Chrome 浏览器都会对网站的用户名密码自动填充&#xff0c;今天发现突然不行了&#xff0c;找到一个解决办法&#xff1a; 1、退出 Chrome 浏览器。2、打开 Chrome 安装目录下的的 Profile 目录&#xff0c;删除 Login Da…...

    2024/5/6 12:09:41
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/8 6:01:22
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/7 9:45:25
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/7 14:25:14
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/7 11:36:39
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/7 9:26:26
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/6 21:42:42
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57