昨天面试完字节跳动头条的测试开发,我更是想要规划写一篇应届生校园招聘的面经,做一个总结。不管你面试哪个方向,主要考察内容都是C++软件知识操作系统计算机网络数据库这几类。

因此,我以字节跳动面试的主要内容按这几类分类整理,供大家参考,之后也会在此基础上进行整理完善。

面试系列文章: 点击这里 直接跳转面试经验贴专栏

字节跳动春招测试开发工程师面试3月18号(附参考答案)

《数据结构与算法》上机实验专栏 链接:https://blog.csdn.net/charmve/category_9579957.html


建议收藏关注

快速排序的衍生应用——Partition函数

  • 1. 原版快排[^1]
    • 1.1 算法原理
    • 1.2 Partition Algorithm
    • 1.3 源程序
    • 1.4 Analysis of QuickSort
  • 2.快排的衍生应用——Partition函数
    • 2.1 Partition函数浅谈
    • 2.2 衍生应用案例分析
    • (1)剑指offer39:数组中出现次数超过一半的数字
    • (2)剑指offer40:最小的k个数
  • 3. 精选大厂面试实战
    • (1)阿里云笔试
    • (2)乐鑫科技笔试
  • 4. 进阶应用

想直接看Partition函数的应用,可直接跳接到第二部分。

1. 原版快排[^1]

1.1 算法原理

Like Merge Sort, QuickSort is a Divide and Conquer algorithm(分治算法). It picks an element as pivot and partitions the given array around the picked pivot. There are many different versions of quickSort that pick pivot in different ways.

  1. Always pick first element as pivot.
  2. Always pick last element as pivot (implemented below)
  3. Pick a random element as pivot.
  4. Pick median as pivot.

The key process in quickSort is partition(). Target of partitions is, given an array and an element x of array as pivot, put x at its correct position in sorted array and put all smaller elements (smaller than x) before x, and put all greater elements (greater than x) after x. All this should be done in linear time.

Pseudo Code for recursive QuickSort function :

/* low  --> Starting index,  high  --> Ending index */
quickSort(arr[], low, high)
{if (low < high){/* pi is partitioning index, arr[pi] is nowat right place */pi = partition(arr, low, high);quickSort(arr, low, pi - 1);  // Before piquickSort(arr, pi + 1, high); // After pi}
}

在这里插入图片描述

1.2 Partition Algorithm

There can be many ways to do partition, following pseudo code adopts the method given in CLRS book. The logic is simple, we start from the leftmost element and keep track of index of smaller (or equal to) elements as i. While traversing, if we find a smaller element, we swap current element with arr[i]. Otherwise we ignore current element.

Pseudo code for partition()

/* This function takes last element as pivot, placesthe pivot element at its correct position in sortedarray, and places all smaller (smaller than pivot)to left of pivot and all greater elements to rightof pivot */
partition (arr[], low, high)
{// pivot (Element to be placed at right position)pivot = arr[high];  i = (low - 1)  // Index of smaller elementfor (j = low; j <= high- 1; j++){// If current element is smaller than the pivotif (arr[j] < pivot){i++;    // increment index of smaller elementswap arr[i] and arr[j]}}swap arr[i + 1] and arr[high])return (i + 1)
}

Illustration of partition() :

arr[] = {10, 80, 30, 90, 40, 50, 70}
Indexes:  0   1   2   3   4   5   6 low = 0, high =  6, pivot = arr[h] = 70
Initialize index of smaller element, i = -1Traverse elements from j = low to high-1
j = 0 : Since arr[j] <= pivot, do i++ and swap(arr[i], arr[j])
i = 0 
arr[] = {10, 80, 30, 90, 40, 50, 70} // No change as i and j // are samej = 1 : Since arr[j] > pivot, do nothing
// No change in i and arr[]j = 2 : Since arr[j] <= pivot, do i++ and swap(arr[i], arr[j])
i = 1
arr[] = {10, 30, 80, 90, 40, 50, 70} // We swap 80 and 30 j = 3 : Since arr[j] > pivot, do nothing
// No change in i and arr[]j = 4 : Since arr[j] <= pivot, do i++ and swap(arr[i], arr[j])
i = 2
arr[] = {10, 30, 40, 90, 80, 50, 70} // 80 and 40 Swapped
j = 5 : Since arr[j] <= pivot, do i++ and swap arr[i] with arr[j] 
i = 3 
arr[] = {10, 30, 40, 50, 80, 90, 70} // 90 and 50 Swapped We come out of loop because j is now equal to high-1.
Finally we place pivot at correct position by swapping
arr[i+1] and arr[high] (or pivot) 
arr[] = {10, 30, 40, 50, 70, 90, 80} // 80 and 70 Swapped Now 70 is at its correct place. All elements smaller than
70 are before it and all elements greater than 70 are after
it.

1.3 源程序

/*************A.QuickSort for integers array deal *************Editor:Zhang Tony Date:2017/7/16 Decription:QuickSort to sort the integers array ***************************************************************//* C implementation QuickSort */
#include<stdio.h>// A utility function to swap two elements
void swap(int* a, int* b)
{int t = *a;*a = *b;*b = t;
}/* This function takes last element as pivot, placesthe pivot element at its correct position in sortedarray, and places all smaller (smaller than pivot)to left of pivot and all greater elements to rightof pivot */
int partition (int arr[], int low, int high)
{int pivot = arr[high];    // pivotint i = (low - 1);  // Index of smaller elementint j; for (j = low; j <= high- 1; j++){// If current element is smaller than or// equal to pivotif (arr[j] <= pivot){i++;    // increment index of smaller elementswap(&arr[i], &arr[j]);}}swap(&arr[i + 1], &arr[high]);return (i + 1);
}/* The main function that implements QuickSortarr[] --> Array to be sorted,low  --> Starting index,high  --> Ending index */
void quickSort(int arr[], int low, int high)
{if (low < high){/* pi is partitioning index, arr[p] is nowat right place */int pi = partition(arr, low, high);// Separately sort elements before// partition and after partitionquickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}
}/* Function to print an array */
void printArray(int arr[], int size)
{int i;for (i=0; i < size; i++)printf("%d ", arr[i]);printf("\n");
}// Driver program to test above functions
int main(void)
{int arr[] = {10, 7, 8, 9, 1, 5};int n = sizeof(arr)/sizeof(arr[0]);quickSort(arr, 0, n-1);printf("Sorted array: \n");printArray(arr, n);return 0;
}

Output:

Sorted array:
1 5 7 8 9 10

1.4 Analysis of QuickSort

Time taken by QuickSort in general can be written as following.

T(n)=T(k)+T(nk1)+θ(n)T(n) = T(k) + T(n-k-1) + \theta(n)

The first two terms are for two recursive calls, the last term is for the partition process. k is the number of elements which are smaller than pivot.

The time taken by QuickSort depends upon the input array and partition strategy. Following are three cases.

  1. Worst Case: The worst case occurs when the partition process always picks greatest or smallest element as pivot. If we consider above partition strategy where last element is always picked as pivot, the worst case would occur when the array is already sorted in increasing or decreasing order. Following is recurrence for worst case.

T(n)=T(0)+T(n1)+θ(n)T(n) = T(0) + T(n-1) + \theta(n)


which is equivalent to


T(n)=T(n1)+θ(n)T(n) = T(n-1) + \theta(n)

The solution of above recurrence is θ(n2)\theta(n2).

  1. Best Case: The best case occurs when the partition process always picks the middle element as pivot. Following is recurrence for best case.

T(n)=2T(n/2)+θ(n)T(n) = 2T(n/2) + \theta(n)

The solution of above recurrence is θ(nLogn)\theta(nLogn). It can be solved using case 2 of Master Theorem.

  1. Average Case:
    To do average case analysis, we need to consider all possible permutation of array and calculate time taken by every permutation which doesn’t look easy.

We can get an idea of average case by considering the case when partition puts O(n/9) elements in one set and O(9n/10) elements in other set. Following is recurrence for this case.

T(n)=T(n/9)+T(9n/10)+θ(n)T(n) = T(n/9) + T(9n/10) + \theta(n)

Solution of above recurrence is also O(nLogn)O(nLogn)

Although the worst case time complexity of QuickSort is O(n2)O(n^2) which is more than many other sorting algorithms like Merge Sort and Heap Sort, QuickSort is faster in practice, because its inner loop can be efficiently implemented on most architectures, and in most real-world data. QuickSort can be implemented in different ways by changing the choice of pivot, so that the worst case rarely occurs for a given type of data. However, merge sort is generally considered better when data is huge and stored in external storage.


2.快排的衍生应用——Partition函数

2.1 Partition函数浅谈

如上述快速排序算法中的核心,选取数组中Pivot的值,大于它的值都放在一边,小于它的值都放在 另一边,这样就可以快速讲数组中的元素二分。

基于此思想,我们有几种实现思路。

  • 思路I

1.算法思路

  • 使用第一个数组元素作为枢轴点,即为pivot;
  • 使用一个指针去扫描整个数组,凡是小于pivot的全部放到数组左端;
  • 最后将pivot放到数组中间的位置,pivot左边全部都是小于它的数字,右边反之,最后返回pivot的位置信息;

这里写图片描述
2. 实现代码:

void swap(int &x, int &y)
{int t = x;x = y;y = t;}
int partition(vector<int> &nums, int begin, int end)
{int pivot = nums[begin];//枢轴(也可以是在begin和end之间的随机数)// Last position where puts the no_larger element.//凡是小于pivot的全部放到数组左端,pos指向<枢轴值的最后一个//pos++指向不满足条件的(用于交换,将满足条件的换过来)int pos = begin;for (int i = begin + 1; i < end; ++i){if (nums[i] < pivot){pos++;if (i != pos) //避免自身交换swap(nums[pos], nums[i]);}}swap(nums[pos], nums[begin]);return pos;
}

注意: i < end表示并没有访问end值。此时若快排,end=元素个数。

3.算法分析

这种实现思路比较直观,但是其实并不高效。从直观上来分析一下,每个小于pivot的值基本上(除非到现在为止还没有遇见大于pivot的值)都需要一次交换,大于pivot的值(有可能需要被交换多次才能到达最终的位置。

  • 思路II

1.算法思路

  • 就如快速排序中最常使用的那样,使用两个指针分别从头部和尾部进行扫描,头部遇到大于pivot的数和尾部遇到小于pivot的数进行交换;
  • 使用了两个指针,效率更高一点;避免使用swap函数

如果我们考虑用 Two Pointers 的思想,保持头尾两个指针向中间扫描,每次在头部找到大于pivot的值,同时在尾部找到小于pivot的值,然后将它们做一个交换,就可以一次把这两个数字放到最终的位置。一种比较明智的写法如下:

2.实现代码

//Two Pointers思想的分割函数(begin为0,end为n-1)
int Partition(vector<int> &nums, int begin, int end)
{int pivot = nums[begin];//第一个记录作为枢轴(也可是在begin和end之间的随机数)while (begin < end){while (begin < end && nums[end] >= pivot){end--;}nums[begin] = nums[end];//尾部找到小于pivot的值,移到低端while (begin < end && nums[begin] <= pivot){begin++;}nums[end] = nums[begin];//头部找到大于pivot的值,移到高端}nums[begin] = pivot;//枢轴基准归位return begin;
}

注意: 这里访问了end值,此时若快排,end=最大下标n-1。

3.算法分析
直观上来看,赋值操作的次数不多,比前面单向扫描的swap次数都少,效率应该会更高。

2.2 衍生应用案例分析

根据上述的分析,我们发现:

  • Partition函数交换了数组中的元素,也就是修改了原数组(这一点我们需要在选择方案时注意)
  • 对于已经排好序的数组,这个函数的时间复杂度太高,特殊情况下我们可以特殊处理,可直接采用取中间值等的方法。

接下来,我们以《剑指Offer》中的两道题作为分析。

(1)剑指offer39:数组中出现次数超过一半的数字

题目:数组中由一个数字出现的次数超过数组长度的一半,请找出这个数字。例如,输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}。由于数字2在数组中出现了5次,超过数组长度的一半,因此输出2.

解法1:基于Partiton函数的时间复杂度为O(n)的算法

这道题除了使用排序的方法(时间复杂度O(nlogn)O(nlogn)),我们根据数组中元素的特性:数组中由一个数字出现的次数超过数组长度的一半。如果把这个数组排序,那么排序之后位于数组中间的数字就是我们要找的那个。统计学上的中位数。

想到这里,我们就能采用Partition函数的思想,我们先在数组中随机选择一个数字,然后调整数组中数字的顺序,使得比选中的数字小的数字都排在它的左边,比选中的数字大的数字都排在它的右边。

  • 如果这个选中的数字的下标刚好是n/2,那么这个数字就是数组的中位数。
  • 如果它的下标大于n/2,那么中位数应该位于它的左边,我们可以接着在它的左边部分的数组中查找。
  • 如果它的下标小于n/2,那么中位数应该位于它的右边,我们可以接着在它的右边部分的数组中查找。

这是一个典型的递归过程,实现代码如下:

#include <iostream>
using namespace std;bool g_bInputInvalid = false;bool CheckInvalidArray(int* numbers, int length)
{bool g_bInputInvalid = false;if(numbers == NULL || length <= 0)bool g_bInputInvalid = true;return g_bInputInvalid;
}bool CheckMoreThanHalf(int*numbers, int length, int number)
{int times = 0;for(int i = 0; i < length; i++){if(numbers[i] == number)times++;}bool isMoreThanHalf = true;if(times*2 <= length){g_bInputInvalid = true;isMoreThanHalf = false;}return isMoreThanHalf;
}// A utility function to swap two elements  
void Swap(int* a, int* b)  
{  int t = *a;  *a = *b;  *b = t;  
}int Partition (int arr[], int low, int high)  // low~high : 0~n-1 
{  int pivot = arr[high]; // pivot  int i = (low - 1); // Index of smaller element  for (int j = low; j <= high - 1; j++)  {  // If current element is smaller than the pivot  if (arr[j] < pivot)  {  i++; // increment index of smaller element  Swap(&arr[i], &arr[j]);  }  }  Swap(&arr[i + 1], &arr[high]);  return (i + 1);  
} int MoreThanHalfNum_Solution(int* numbers, int length) 
{if(CheckInvalidArray(numbers, length))return 0;int start = 0;int end = length - 1;int middle = length >> 1;int index = 0; //利用while (start != middle){if(index > middle){end = index - 1;index = Partition(numbers, start, end);}else {start = index + 1;index = Partition(numbers, start, end);}}int result = numbers[middle];if(!CheckMoreThanHalf(numbers, length, result))return 0;return result;
}int main()
{int a[] = {1,2,3,2,2,2,5,4,2};//{3,4,5,1,2};int length = sizeof(a) / sizeof(a[0]);cout<<MoreThanHalfNum_Solution(a,length);return 0;
}

解法2:根据数组特点找出时间复杂度为O(n)的算法

数组中由一个数字出现的次数超过数组长度的一半,也就是说它出现的次数比其他所有数字出现次数的总和还要多。

因此,我们可以考虑在便利数组的时候记录两个值:一个是数组中的一个数字,另一个是次数

当我们遍历到下一个数字的时候,如果下一个数字和我们之前保存的数字相同,则次数加1;如果下一个数字与我们之前保存的数字不同, 则次数减1。如果次数为零,那么我们需要保存下一个数字,并把次数设为1.

由于我们要找的数字出现的次数比其他所有数字出现的次数之和还要多,那么我们要找的数字肯定是最后一次把次数设为1时的数字。

下面是这种思路的参考代码:

#include <iostream>
#include <math.h>using namespace std;bool g_bInputInvalid = false;bool CheckInvalidArray(int* numbers, int length)
{bool g_bInputInvalid = false;if(numbers == NULL || length <= 0)bool g_bInputInvalid = true;return g_bInputInvalid;
}bool CheckMoreThanHalf(int*numbers, int length, int number)
{int times = 0;for(int i = 0; i < length; i++){if(numbers[i] == number)times++;}bool isMoreThanHalf = true;if(times*2 <= length){g_bInputInvalid = true;isMoreThanHalf = false;}return isMoreThanHalf;
}int MoreThanHalfNum(int* numbers, int length){if(CheckInvalidArray(numbers, length))return 0;int result = numbers[0];int times = 1;for(int i = 1; i < length; i++){if(times == 0){result = numbers[i];times = 1;}else if(numbers[i] == result)times++;elsetimes--;}if(!CheckMoreThanHalf(numbers, length, result))return 0;return result; } int main()
{int a[] = {1,2,3,2,2,2,5,4,2};//{3,4,5,1,2};int length = sizeof(a) / sizeof(a[0]);cout<<MoreThanHalfNum(a,length);return 0;
} 

类似于数组中数字出现的次数这样的题目还有很多,下一期我会归纳整理后发布。

(2)剑指offer40:最小的k个数

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

解法1:基于Partiton函数的时间复杂度为O(n)的算法

基于数组的第k个数字来调整,使得比第k个数字小的所有数字都位于数组的左边,比第k个数字大的所有数字都位于数组的右边。调整之后,位于数组左边的k个数字就是最小的k个数字(这k个数字不一定是排序的)。时间复杂度O(N)

void GetLeastKNumbers(int* input, int n, int* output, int k)
{if(input == nullptr || output == nullptr || k > n || n<=0 ||k<=0)return;int start = 0;int end = n - 1;int index = Partition(input, n, start, end);while(index != k){if(index > k-1){end = index - 1;index = Partition(input, n, start, end);}else{start = index + 1;index = Partition(input, n, start, end);}}for(int i = 0; i<k; i++)output[i] = input[i];
}

解法2:时间复杂度为O(nlogk)O(nlogk)的算法,特别适合海量数据

创建一个大小固定为k的数据容器来存储最小的k个数字。接下来每次从输入的n个整数读入一个数,如果容器中已有的数字个数小于k,则直接把这次读入的数字放入容器;如果容器中已有k个数字(容器满了),此时我们需要换出这k个数字中的最大值或抛弃这次输入的数字。

因此,当容器满了之后,我们需要做3件事:

  1. 在k个整数中找到最大数;
  2. 有可能在这个容器中删除最大数;
  3. 有可能要插入一个新的数字。

如果用一棵二叉树来实现这个数据容器,那么我们能在O(logk)O(logk)时间内实现这3步。因此输入n个数而言,总的时间复杂度就是O(nlogk)O(nlogk)

我们可以选择用不同的二叉树来实现这个数据容器。由于每次都需要找到k个整数的最大数字,我们很容易想到用最大堆。在最大堆中,根结点的值总是大于它的子树中任意节点的值。但是,我们自己从头实现一个最大堆需要一定的代码量,这在面试短短的几十分钟内很难完成。(限于篇幅,本文就不详细介绍,有兴趣的读者可以详细实现一下最大堆,主要是它的思想。)

我们还可以采用红黑树来实现我们的容器。红黑树把节点分为红、黑两种颜色并根据一些规则确保输在一定程度上是平衡的,从而保证在红黑树中的查找、删除和插入操作都只需要O(logk)O(logk)时间。在STL中,set和multiset都是基于红黑树实现的。
在这里插入图片描述
在这里插入图片描述


3. 精选大厂面试实战

(1)阿里云笔试

题目:数组中比第x个值大的放在左边,比它小的放在右边,如果左边的最小值f是右边的最大值g的倍数就计数,输出最终满足条件的个数。

#include <iostream>
#include <stdlib.h> 
#include <math.h>
using namespace std;int count = 0;int RandomInRange(int a, int b)
{int temp = 0;do{ temp = rand()%(b-1);}while(temp < a || temp > b);return temp;
}void Swap(int* a, int* b)
{int t = *a;*a = *b;*b = t;
} int Partition(int data[], int length, int start, int end, int k)
{if(data == NULL || length <= 0 || start < 0 || end > length)printf("Invalid Parameters");//throw new std::exception("Invalid Parameters");int temp = data[k];int dat = data[0];//cout<<"\ntemp: "<<temp<<endl;int i,j;  i = start-1, j = end-1;do{while(data[j] < temp && i < j) j--;if(i<j) data[i++] = data[j];while(data[i] > temp && i < j) i++;if(i<j) data[j--] = data[i];}while(i != j);data[i] = dat;return i+1;
}int max(int a[], int start, int end)
{int max = a[start-1];for(int i = start-1; i < end; i++){if(a[i] > max)max = a[i];}return max;
}int min(int a[], int start, int end)
{int min = a[start-1];for(int i = start-1; i < end; i++){if(a[i] < min)min = a[i];}return min;
}int main() {int n;cin>>n;int count = 0;int i,j;int* a = new int(n+1); for(j = 0; j < n; j++)cin>>a[j];for(int k = 0; k < n; k++){int* b = new int(n+1); for(int i = 0; i < n; i++)b[i] = a[i];int index = Partition(b, n, 1, n, k);//cout<<index<<endl;for(j = 0; j < n-1; j++)cout<<b[j]<<" ";cout<<b[j]<<endl;int fmin = min(b, 1, index);int gmax = max(b, index, n);if(fmin % gmax == 0)count++;}cout<<count<<endl;delete[] a;return 0;
}

(2)乐鑫科技笔试

题目:一个村庄里有n个人,假如有m个富人,请问这m个富人所占的财富比重是多少。如用到排序算法请说明时间复杂度。

本题跟找出数组中最小的k个数是一样的,所以Partition实现可以参考前一题。

这里给出采用冒泡排序的方法,但是这个时间复杂度太高O(n2)O(n^2)

分析: 要得出这m个富人,肯定得用到排序的逻辑,但是如何排序使得时间复杂度更低,这是一个需要考虑的问题。
这里,我首先想到的是冒泡排序,只需要找出这较不富裕的n-m个人就可以顺利解决这题。那么可以缩短这个n!次比较次数,缩短为n*m! (这里m<n).

#include <iostream>
using namespace std;#define DateType int void swap(int *xp, int *yp)
{int temp = *xp;*xp = *yp;*yp = temp;
}void BobbleSort(DateType arr[], int len, int m)  //第n-m个最小值放在数据末尾
{int i,j,count = 0;int max = 0;if(len>=m){	for (i = 0; i<len-m; i++)for(j = i; j<len-i-1; j++)if(arr[j]<arr[j+1])swap(&arr[j], &arr[j+1]);}else printf("given 'm' is illegal\n"); 
}void myprint(int arr[], int len)
{for(int i = 0; i<len; i++)cout<<arr[i]<<' ';cout<<endl;
}int main(void)
{int m,n;  //总人数n,m个富人cin>>n;cin>>m;double sum_n,sum_m;sum_n = sum_m = 0;int *arr=(int *)malloc(sizeof(int)*n);//int arr[] = {10, 5, 7, 5, 9, 3, 6, 7, 8, 4};for(int i = 0; i<n; i++){cin>>*(arr+i);sum_n += *(arr+i);}myprint(arr, n);BobbleSort(arr, n, m);myprint(arr, n);for(int j = 0; j<m; j++)sum_m += *(arr+j);printf("%.2f\n", sum_m/sum_n);return 0;
}

4. 进阶应用

三分partition算法,顾名思义,也就是将数组按照规则分为三个部分,比如非常经典的国旗问题Dutch national flag problem,就是要给定的红、白、蓝三色随机颜色小球按照红、白、蓝的顺序进行排序,利用partition算法,使用一个指针进行扫描,红色的小球就用swap()放到左边,白色的保持位置不变,蓝色的同样使用swap()放到右边,最后就得到要求的序列了。

LeetCode中有恰好有这么一个题:75. Sort Colors!

class Solution
{public:void sortColors(vector<int> &nums){int len = nums.size();int left = 0;int right = len - 1;for(int i = 0; i < len; ++i){if(i > right)break;if(nums[i] == 1)continue;else if(nums[i] == 0){swap(nums[i], nums[left]);left++;}else{swap(nums[i], nums[right]);right--;i--;}}}
};

LeetCode 324. Wiggle Sort II

LeetCode中的第324题中也同样可以使用三分partition算法,该题的discuss中,StefanPochmann大神提出一种O(n)+O(1)复杂度的高效算法,原链接为:

324. Wiggle Sort II

Discuss!

解题思路:
在这里插入图片描述

class Solution
{public:void wiggleSort(vector<int>& nums) {int n = nums.size();// Find a median.auto midptr = nums.begin() + n / 2;nth_element(nums.begin(), midptr, nums.end());int mid = *midptr;// Index-rewiring.#define A(i) nums[(1+2*(i)) % (n|1)]// 3-way-partition-to-wiggly in O(n) time with O(1) space.int i = 0, j = 0, k = n - 1;while (j <= k) {if (A(j) > mid)swap(A(i++), A(j++));else if (A(j) < mid)swap(A(j), A(k--));elsej++;}}
};

更多关于排序算法的变式应用,我将会在之后的文章中继续更新。


推荐阅读:

[1] 数据结构与算法 | 二分查找:剑指offer53 在排序数组中查找数字

[2] 数据结构与算法 | 数据结构中到底有多少种“树”?一文告诉你

[3] 数据结构与算法 | 别怕,有我!KMP 算法详解

[4] 数据结构与算法之美 | 字符串匹配算法原理讲解(Hash、KMP、BM、Sunday)

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Docker 网络模式

    一、Docker 网络模式当安装 Docker 时 , 会自动创建三个网络 , 可以通过命令进行查看 .[test@Devops-gate ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 5a7aa62232c3 bridge bridge local 212…...

    2024/5/7 0:18:13
  2. 如何实现EasyGBS的服务集群目标?

    国标视频平台EasyGBS目前已经是一个已经相对成熟的视频平台了,在安全性方面有比较高的优势。之前我们分享了EasyDSS的集群思路,同理,EasyGBS在未来也将往这个方面发展。本文我们就来探讨一下EasyGBS的集群思路。集群目标国标EasyGBS单服务运行时,可对外提供国标全功能的设备…...

    2024/5/7 5:07:31
  3. 机器学习笔记之 K-NEAREST NEIGHBORS

    机器学习笔记之 K-NEAREST NEIGHBORS 主要教材是英文的,所以一般笔记直接写英文了不翻译*Two major types of supervised learning problems: classification & regression classification: predict a class label, which is a choice from a predefined list of possibil…...

    2024/4/29 8:12:26
  4. 分享( Share) | 2019 年下半年计算机软考证书申领教程

    前言本文首发于个人公众号:可乐python说Hi,我是可乐,和很多朋友一样,我于 2019 年下半年参加了计算机软考中的系统集成项目管理工程师的考试,并成功通过了考试。和往年一样,考试结束后,我们等待着成绩公布的那天,查询成绩后,我们更是期待拿到证书的那一刻。 2020 年是…...

    2024/5/7 5:01:22
  5. OI梗

    OI梗 本条目收录与OI(信息学竞赛,英语:Olympiad in Informatics)及其参赛选手圈子有关的流行文化。 本条目仅收录常见梗,过于专业的用语不予收录,寻找专业用语请去OI Wiki等专业网站。 目录 1 OI用语 1.1 %%% 1.2 蒟蒻 1.3 神犇/巨佬 1.4 水题 1.5 自动机 1.6 卡常 1.7 爆…...

    2024/5/7 5:02:38
  6. 【深度学习与tensorflow2.0实战】(网易云课堂)13-GAN

    本文目录GAN原理纳什均衡-D、GEM距离GAN实战**gan.py**dataset.py GAN原理Having Fun ▪ https://reiinakano.github.io/gan-playground/ ▪ https://affinelayer.com/pixsrv/ ▪ https://www.youtube.com/watch?v=9reHvktowLY&feature=youtu.be ▪ https://github.com/aj…...

    2024/5/1 17:57:07
  7. FairGuard打击外挂,守护游戏安全

    据 Sensor Tower 商店情报数据,2019 年全球移动游戏仅在 App Store 和 Google Play 的总收入就达到 617 亿美元,较 2018 年增长14.8%, 中国手游市场在 2019 年依然处于上升通道。在巨大的利益驱使下, 手游黑灰产已经形成并且来势汹汹, 对游戏公司造成了难以估量的经济损失。F…...

    2024/4/29 8:12:18
  8. 吐血整理:二叉树、红黑树、B&B+树超齐全,快速搞定数据结构

    前言没有必要过度关注本文中二叉树的增删改导致的结构改变,规则操作什么的了解一下就好,看不下去就跳过,本文过多的XX树操作图片纯粹是为了作为规则记录,该文章主要目的是增强下个人对各种常用XX树的设计及缘由的了解,也从中了解到常用的实现案例使用XX树实现的原因。数据…...

    2024/5/4 15:36:35
  9. 很多人不知道的Python 炫技操作:条件语句的七种写法

    很多人不知道的Python 炫技操作:条件语句的七种写法前言:有的人说 Python 是一门 入门容易,但是精通难的语言,这一点我非常赞同。Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性…...

    2024/4/29 2:43:51
  10. 开发习惯总结

    有几个原则可维护,可复用 能用组件解决问题就用组件,不要自己再造轮子做些重复工作。有些特殊需求可以参考组件内部源码,调整后封装成自己的组件。用组件的好处是大家做起项目来都很方便,后续交给其他人维护起来也不用那么费劲运行效率 css执行是按上下顺序执行,多级css是…...

    2024/4/29 8:12:08
  11. BBB验厂要求,BBB验厂结果

    Bed Bath & Beyond公司成立于1971年,是美国最大的出售高品质床上用品和家庭用品的连锁商店。BBB审核内容为社会责任,指定UL执行。 人权标准要求: 1.Child Labor | 童工 2.Collective Bargaining | 集体谈判 3.Document Review | 文件审核 4.Dormitories | 宿舍 5.Enviro…...

    2024/4/29 8:12:14
  12. 奇安信安全产品服务云南总代、奇安信桌面云管理系统解决方案

    云南360奇安信息总代、经销商 云南天成科技 吴经理:13698746778 QQ:463592055目 录一. 概述.1.1 文档说明.................................................................................................................................. 1.1.2 适用范围...........…...

    2024/4/28 11:25:29
  13. 一文学会微信WEB第三方登录

    今天给大家分享一下微信WEB第三方登录:一、提前工作:(提前工作省略,腾讯要你提供什么,你就提供什么就好了。)1.1、申请微信开放平台账号(https://open.weixin.qq.com/):1.2、企业开发平台认证1.3、创建网站应用,注意网站名称、网站logo这个会给用户直观显示的。1.4、…...

    2024/4/29 8:11:58
  14. 很多人不知道的Python 炫技操作:合并字典的七种方法

    很多人不知道的Python 炫技操作:合并字典的七种方法系列导读1. 很多人不知道的Python 炫技操作:条件语句的七种写法Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就…...

    2024/5/6 19:45:37
  15. VMware ubuntu虚拟机网络配置静态IP地址

    编辑 虚拟网络编辑器 添加网络 VMnet8 NAT模式,自动生成局域网IP 192.168.x.x,网关为192.168.x.2 sudo vim /etc/netplan/50-xxxx.yaml 编辑address为要配置的静态ip地址,gateway4为网关地址 sudo netplan apply 应用生效 使用ssh链接新的静态ip...

    2024/5/7 3:28:51
  16. Android:LiveData postValue导致数据丢失问题,及其原因

    关于这个问题,网上很多,有一篇文章还详细列举了几种情况,写的非常直观:https://www.jianshu.com/p/aa24dd9123a1我写的此文章比较多的个人想法,需要自己思考一下。我碰到的实际情况是:使用阿里RTC实时音视频服务,我把音视频操作和回调都写在了ViewModel中,在同一房间内…...

    2024/5/6 23:44:10
  17. web自动化-鼠标、键盘操作

    一、鼠标操作 selenium中的ActionChains类用来完成模拟鼠标操作 主要流程:1、存储鼠标的操作2、perform()来执行鼠标操作1、鼠标的悬停操作(以百度页面的设置为例) from selenium import webdriver import time from selenium.webdriver.support.wait import WebDriverWait …...

    2024/5/4 17:14:19
  18. 开发必备--盘点那些我一直在使用的Idea插件

    文章目录1. Alibaba Java Coding Guidelines2. Grep Console3. Rainbow Brackets4. Maven Helper5. Retrofit Rest Client 2.06. Translation7. stackoverflow8. Lombok 1. Alibaba Java Coding Guidelines 作用: 提高代码规范,小白入门必备的插件2. Grep Console 作用: 用来更…...

    2024/5/6 21:45:17
  19. Vue.js 2.0使用指南

    Vue 实例属性与方法不要在实例属性或者回调函数中(如 vm.$watch(a, newVal => this.myMethod()) )使用箭头函数。因为箭头函数绑定父上下文,所以 this 不会像预想的一样是 Vue 实例,而是 this.myMethod 未被定义 实例生命周期生命周期钩子var vm = new Vue({data: {a: 1…...

    2024/5/6 5:34:36
  20. HM中的TComDataCU和VTM中的CodingStructure和 CodingUnit的代码解释

    在HM中 TEncCU.cpp的文件中xCompressCU( TComDataCU*& rpcBestCU, TComDataCU*& rpcTempCU, UInt uiDepth DEBUG_STRING_FN_DECLARE(sDebug_), PartSize eParentPartSize )代码中每个深度的预测用的都是temp,预测完后跟best比较并交换。best保留作为当前深度的预测数据…...

    2024/5/4 16:40:12

最新文章

  1. LeetCode 611. 有效三角形的个数

    原题链接&#xff1a;611. 有效三角形的个数 - 力扣&#xff08;LeetCode&#xff09; 题目说&#xff0c;给定一个包含非负整数的数组 num&#xff0c;返回其中可以组成三角形三条边的三元组个数。 示例&#xff1a; nums [4, 2, 3, 4]&#xff1b; 有效组合如下&#xff1a;…...

    2024/5/7 6:19:24
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/5/6 9:38:23
  3. 数据结构--KMP算法

    数据结构–KMP算法 首先我在这里提出以下问题&#xff0c;一会一起进行探讨 1.什么是最长公共前后缀 2. KMP算法怎么实现对匹配原理 3. 最长公共前后缀怎么求解 KMP算法可以用来解决什么问题&#xff1f; 答&#xff1a;在字符串中匹配子串&#xff0c;也称为模式匹配 分析…...

    2024/5/5 0:48:22
  4. 自定义OPPO-r9s的kernel内核,并开启安卓支持docker

    0. 版本说明 本文提供了OPPO手机r9s的内核编译方法&#xff0c;并开机支持docker。用的是开源lineage14.1的rom。 我这边基于开源lineage14.1&#xff0c;打了一个docker内核编译镜像(17380582683/r9s)&#xff0c;大家可以在容器里&#xff0c;手动打出完整的rom包zip文件。…...

    2024/5/2 2:39:28
  5. 416. 分割等和子集问题(动态规划)

    题目 题解 class Solution:def canPartition(self, nums: List[int]) -> bool:# badcaseif not nums:return True# 不能被2整除if sum(nums) % 2 ! 0:return False# 状态定义&#xff1a;dp[i][j]表示当背包容量为j&#xff0c;用前i个物品是否正好可以将背包填满&#xff…...

    2024/5/6 18:23:10
  6. 【Java】ExcelWriter自适应宽度工具类(支持中文)

    工具类 import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet;/*** Excel工具类** author xiaoming* date 2023/11/17 10:40*/ public class ExcelUti…...

    2024/5/6 18:40:38
  7. Spring cloud负载均衡@LoadBalanced LoadBalancerClient

    LoadBalance vs Ribbon 由于Spring cloud2020之后移除了Ribbon&#xff0c;直接使用Spring Cloud LoadBalancer作为客户端负载均衡组件&#xff0c;我们讨论Spring负载均衡以Spring Cloud2020之后版本为主&#xff0c;学习Spring Cloud LoadBalance&#xff0c;暂不讨论Ribbon…...

    2024/5/6 23:37:19
  8. TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

    一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…...

    2024/5/6 7:24:07
  9. VB.net WebBrowser网页元素抓取分析方法

    在用WebBrowser编程实现网页操作自动化时&#xff0c;常要分析网页Html&#xff0c;例如网页在加载数据时&#xff0c;常会显示“系统处理中&#xff0c;请稍候..”&#xff0c;我们需要在数据加载完成后才能继续下一步操作&#xff0c;如何抓取这个信息的网页html元素变化&…...

    2024/5/7 0:32:52
  10. 【Objective-C】Objective-C汇总

    方法定义 参考&#xff1a;https://www.yiibai.com/objective_c/objective_c_functions.html Objective-C编程语言中方法定义的一般形式如下 - (return_type) method_name:( argumentType1 )argumentName1 joiningArgument2:( argumentType2 )argumentName2 ... joiningArgu…...

    2024/5/6 6:01:13
  11. 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】

    &#x1f468;‍&#x1f4bb;博客主页&#xff1a;花无缺 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! 本文由 花无缺 原创 收录于专栏 【洛谷算法题】 文章目录 【洛谷算法题】P5713-洛谷团队系统【入门2分支结构】&#x1f30f;题目描述&#x1f30f;输入格…...

    2024/5/6 7:24:06
  12. 【ES6.0】- 扩展运算符(...)

    【ES6.0】- 扩展运算符... 文章目录 【ES6.0】- 扩展运算符...一、概述二、拷贝数组对象三、合并操作四、参数传递五、数组去重六、字符串转字符数组七、NodeList转数组八、解构变量九、打印日志十、总结 一、概述 **扩展运算符(...)**允许一个表达式在期望多个参数&#xff0…...

    2024/5/7 1:54:46
  13. 摩根看好的前智能硬件头部品牌双11交易数据极度异常!——是模式创新还是饮鸩止渴?

    文 | 螳螂观察 作者 | 李燃 双11狂欢已落下帷幕&#xff0c;各大品牌纷纷晒出优异的成绩单&#xff0c;摩根士丹利投资的智能硬件头部品牌凯迪仕也不例外。然而有爆料称&#xff0c;在自媒体平台发布霸榜各大榜单喜讯的凯迪仕智能锁&#xff0c;多个平台数据都表现出极度异常…...

    2024/5/6 20:04:22
  14. Go语言常用命令详解(二)

    文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言 接着上一篇继续介绍Go语言的常用命令 常用命令 以下是一些常用的Go命令&#xff0c;这些命令可以帮助您在Go开发中进行编译、测试、运行和…...

    2024/5/7 0:32:51
  15. 用欧拉路径判断图同构推出reverse合法性:1116T4

    http://cplusoj.com/d/senior/p/SS231116D 假设我们要把 a a a 变成 b b b&#xff0c;我们在 a i a_i ai​ 和 a i 1 a_{i1} ai1​ 之间连边&#xff0c; b b b 同理&#xff0c;则 a a a 能变成 b b b 的充要条件是两图 A , B A,B A,B 同构。 必要性显然&#xff0…...

    2024/5/6 7:24:04
  16. 【NGINX--1】基础知识

    1、在 Debian/Ubuntu 上安装 NGINX 在 Debian 或 Ubuntu 机器上安装 NGINX 开源版。 更新已配置源的软件包信息&#xff0c;并安装一些有助于配置官方 NGINX 软件包仓库的软件包&#xff1a; apt-get update apt install -y curl gnupg2 ca-certificates lsb-release debian-…...

    2024/5/6 7:24:04
  17. Hive默认分割符、存储格式与数据压缩

    目录 1、Hive默认分割符2、Hive存储格式3、Hive数据压缩 1、Hive默认分割符 Hive创建表时指定的行受限&#xff08;ROW FORMAT&#xff09;配置标准HQL为&#xff1a; ... ROW FORMAT DELIMITED FIELDS TERMINATED BY \u0001 COLLECTION ITEMS TERMINATED BY , MAP KEYS TERMI…...

    2024/5/6 19:38:16
  18. 【论文阅读】MAG:一种用于航天器遥测数据中有效异常检测的新方法

    文章目录 摘要1 引言2 问题描述3 拟议框架4 所提出方法的细节A.数据预处理B.变量相关分析C.MAG模型D.异常分数 5 实验A.数据集和性能指标B.实验设置与平台C.结果和比较 6 结论 摘要 异常检测是保证航天器稳定性的关键。在航天器运行过程中&#xff0c;传感器和控制器产生大量周…...

    2024/5/6 7:24:03
  19. --max-old-space-size=8192报错

    vue项目运行时&#xff0c;如果经常运行慢&#xff0c;崩溃停止服务&#xff0c;报如下错误 FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory 因为在 Node 中&#xff0c;通过JavaScript使用内存时只能使用部分内存&#xff08;64位系统&…...

    2024/5/7 0:32:49
  20. 基于深度学习的恶意软件检测

    恶意软件是指恶意软件犯罪者用来感染个人计算机或整个组织的网络的软件。 它利用目标系统漏洞&#xff0c;例如可以被劫持的合法软件&#xff08;例如浏览器或 Web 应用程序插件&#xff09;中的错误。 恶意软件渗透可能会造成灾难性的后果&#xff0c;包括数据被盗、勒索或网…...

    2024/5/6 21:25:34
  21. JS原型对象prototype

    让我简单的为大家介绍一下原型对象prototype吧&#xff01; 使用原型实现方法共享 1.构造函数通过原型分配的函数是所有对象所 共享的。 2.JavaScript 规定&#xff0c;每一个构造函数都有一个 prototype 属性&#xff0c;指向另一个对象&#xff0c;所以我们也称为原型对象…...

    2024/5/6 7:24:02
  22. C++中只能有一个实例的单例类

    C中只能有一个实例的单例类 前面讨论的 President 类很不错&#xff0c;但存在一个缺陷&#xff1a;无法禁止通过实例化多个对象来创建多名总统&#xff1a; President One, Two, Three; 由于复制构造函数是私有的&#xff0c;其中每个对象都是不可复制的&#xff0c;但您的目…...

    2024/5/6 7:24:01
  23. python django 小程序图书借阅源码

    开发工具&#xff1a; PyCharm&#xff0c;mysql5.7&#xff0c;微信开发者工具 技术说明&#xff1a; python django html 小程序 功能介绍&#xff1a; 用户端&#xff1a; 登录注册&#xff08;含授权登录&#xff09; 首页显示搜索图书&#xff0c;轮播图&#xff0…...

    2024/5/7 0:32:47
  24. 电子学会C/C++编程等级考试2022年03月(一级)真题解析

    C/C++等级考试(1~8级)全部真题・点这里 第1题:双精度浮点数的输入输出 输入一个双精度浮点数,保留8位小数,输出这个浮点数。 时间限制:1000 内存限制:65536输入 只有一行,一个双精度浮点数。输出 一行,保留8位小数的浮点数。样例输入 3.1415926535798932样例输出 3.1…...

    2024/5/6 16:50:57
  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