At this time , A middleaged Mediterranean appeared in my sight ：“ With all of you , Pay attention to the , In order to examine everyone's programming ability ,5 There will be a test in minutes , After saving your code , Gather in the big meeting room .”
...
Colleague a ：“ Isn't this the technical director from headquarters ？”
Colleague b ：“WC, The first time I saw a big man .”
I ：“ Didn't you hear about the test ？”
...
later , We did a test for no apparent reason , When I hand in a blank test paper , Bring out a blank brain , Listen to colleagues talking about test answers .
Colleagues tell me , This algorithm problem comes from Baidu , And gave me a document .
The specific contents of the document are as follows ：
=========
1、 Dudu bear wants to go to the mall to buy a hat , In the mall N A hat , Some hats may cost the same . Dudu bear wants to buy a hat which is the third cheapest , Ask the third cheapest hat price ？
Input description :
First enter a positive integer N（N <= 50）, Next input N The number represents the price of each hat （ Prices are positive integers , And less than or equal to 1000）
Output description :
If there is a third cheap hat , Please output the price , Otherwise output 1
Input example 1:
10
10 10 10 10 20 20 30 30 40 40
Output example 1:
30
answer ：
/ Simple , The time complexity is also low /
#include<iostream>
using namespace std;int main(){
int n,t=0,syn=0;
int price[1000]={0};
cin>>n;
while(n){
cin>>t;
price[t]=1;
}
t=0;
for(int i=0;i<1000;i++){
if(price[t]&&syn<3)
syn++;
if(s
《 A big factory Java Analysis of interview questions + Back end development learning notes + The latest architecture explanation video + Practical project source code handout 》
【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 Full content open source sharing
yn==3)
break;
t++;
}
syn==3?cout<<t:cout<<1;
}
2、 On a number axis there are N A little bit , The coordinates of the first point are the current position of the degree bear , The first N1 One point is the home of Dudu bear . Now he needs to start from 0 Coordinate No.1 goes to N1 Coordinate No .
But in addition to 0 Coordinates and N1 Coordinate No , He could be in the rest of the N2 Choose a point out of the coordinates , And ignore this point directly , Ask Dudu bear how far to go home at least ？
answer ：
from N2 Choose a point out of the coordinates , And ignore this point directly . Ignore a point directly It's just Directly affect , The distance between the front and back nodes of this node . This For the time being, we will name the distance of influence optimization distance , All the nodes in order to form a set of three nodes , In this way, you only need to go through one cycle to get the result .
The larger the optimization distance is, the shorter the total distance will be if the midpoint element of the set is removed , Here's the code .
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int length = scanner.nextInt();
int[] arrays = new int[length];
for (int i = 0; i < length; i++) {
arrays[i] = scanner.nextInt();
}
/**

sum Total distance

repetition Three nodes The total distance repeatedly calculated in

select Optimize the maximum distance The added distance of the three nodes

add The three ending distances are max in The distance between the head and tail nodes

last Of the last three nodes The tail distance is not calculated twice Need to add
 optimizeDistance Optimize the distance
*/
int sum = 0,int repetition = 0,int select = 0,int add = 0,int last = 0,int optimizeDistance = 0;
for (int i = 0; i <= (arrays.length  3); i++) {
int begin = arrays[i];
int mid = arrays[i + 1];
int end = arrays[i + 2];
// The distance between the three points
int threePointDistance = Math.abs(mid  begin) +
Math.abs(end  mid);
// The distance between two points That is, the distance to be subtracted is calculated many times
int twoPointDistance = Math.abs(end  mid);
int contrast = threePointDistance  Math.abs(begin  end);
repetition += twoPointDistance;
sum += threePointDistance;
last = twoPointDistance;
if (contrast > optimizeDistance) {
optimizeDistance = contrast;
select = threePointDistance;
add = Math.abs(end  begin);
}
}
System.out.println((sum  select + last)  repetition + add);
}
}
3、 Dudu bear has recently been particularly interested in full permutations , about 1 To n An arrangement of , The degree bear found that the appropriate greater than and less than symbols can be inserted in the middle according to the size relationship ( namely '>' and '<' ) Make it a legal inequality sequence .
But now Dudu bear has only k A less than symbol, i.e ('<'') and nk1 A greater than symbol ( namely '>'), Dudu bear wants to know about 1 to n How many permutations in any permutation can use these symbols to make it a legal inequality sequence .
Last
Learning video ：
The real interview question of Dachang ：
This article has been CODING Open source project ：【 A big factory Java Analysis of interview questions + Core summary learning notes + The latest explanation video + Actual project source code 】 Included
thank