Les développeurs Java Kong trois ans, les contrôles intermédiaires de l'entreprise algorithme, après avoir quitté ces questions que je me souviens d'une vie

Quelques jours il y a notre compagnie a fait quelque chose de stupide, des choses très, très stupide. Je pensais que d'après l'école là-bas à la recherche d'un emploi en plus du test, mais ne rien à voir avec la chose liée à l'examen.

 

Cependant, le temps est imprévisible, directeur technique de l'entreprise, le directeur du personnel, les deux grands frères viennent soudainement dans nos lignes d'affaires, appelez-moi le patron, nous donne organisé une spéciale « test ».

Ce fut un après-midi ensoleillé, je penchais ses jambes, sa main gauche tenant une tasse de cappuccino, la main droite serrant mon axe de roulement souris Logitech,, la navette entre les titres chauds.

« Robe jaune cheveux bouffants ~ ~ »

« WC, témoin de l'histoire, l'entrée au collège cette année l'examen retardé d'un mois, alors si je tombe chose un tel, je ne divisez 985 minutes? »

Collègues: « Voilà pourquoi vous passez le premier cycle de test? »

Moi: « euh ... »

"WC, Ah Tao Bo Shui ça va le faire?"

Collègues: « Ce test à l' université ont quelque chose à voir avec vous? »

Moi: « Hey »

 

A cette époque, un méditerranéen d'âge moyen jamais vu dans ma ligne de mire: « Mesdames et messieurs, prendre note, afin d'examiner l'ensemble de la capacité de programmation, un test au bout de cinq minutes, pour sauver leur propre code après un bon, à grande la salle de conférence ".

...

Un collègue: « Ce n'est pas le siège du directeur technique faire? »

Collègues B: « WC, la première fois que je voyais grand frère. »

Moi: « Vous ne vous entends pas voulez tester? »

...

Plus tard, nous avons inconsciemment effectué un test, quand je suis allé en blanc papiers payer, mettre un esprit vide avec eux, en écoutant des collègues parler des réponses de test.

Collègue m'a dit cette question de l'algorithme Baidu, et m'a donné un document.

Contenu du fichier sont les suivants:

1, le degré de besoin d'aller au centre commercial pour acheter un chapeau d'ours, le centre commercial a chapeau N, un chapeau et certains peuvent être le même prix. Degré de Bear voulait acheter un troisième chapeaux de prix moins chers, des chapeaux bon marché tiers ont demandé combien le prix?

 

Une description:

Des premières entrées d'un nombre entier positif de N (N <= 50), N représente le nombre d'entrée suivant prix par casquette (les prix sont des nombres entiers positifs, et 1000 ou moins)

Description Sortie:

Si le troisième chapeau existe pas cher, le prix est beaucoup ou une sortie -1

Exemple de saisie 1:

dix

10 10 10 10 20 20 30 30 40 40

Sortie Exemple 1:

30

Réponse:

/*简单,时间复杂度也低*/
#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(syn==3)
break;
 t++;
}
syn==3?cout<<t:cout<<-1;
}

 

2, un total de N points sur une ligne de nombre, les coordonnées du premier point de la position courante de l'ours, du degré N-1 est le point de la maison de l'ours. Maintenant, il doit aller dans l'ordre du nombre N-1 de 0 coordonnées coordonnées.

Mais en plus des coordonnées 0 et coordonnées numéro N-1, il peut choisir les N-2 coordonnées d'un point, et ce point directement à ignorer, et a demandé de rentrer chez eux au moins degré d'ours combien de distance?

 

Réponse:

Sélectionner un point à partir des coordonnées de la N-2, et directement au point ignoré. ignorer tout simplement un point sera une incidence directe sur la distance avant et après le nœud de nœud. Cette distance nous affecte pour l'instant appelé à distance optimize, tous les nœuds afin de former un ensemble de trois noeuds, seront en mesure d'obtenir des résultats ainsi que par un cycle.

Si retiré de plus l'optimisation de cet élément de l'ensemble sera tel que le milieu de la distance totale est plus courte, le code ci-dessous.

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 总距离
        * repetition 三个节点 中被重复计算的总距离
        * select 优化距离最大的 三个节点两两相加的距离
        * add 三个结尾距离为 max 中 头尾节点的距离
        * last 最后三个节点中 尾距离没有被计算两次 需要加上
        * optimizeDistance 优化距离
        */
        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];

            //三个点之间的距离
            int threePointDistance = Math.abs(mid - begin) +
                Math.abs(end - mid);

            //两个点之间的距离 即被多次计算待会需要减掉的距离
            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, d'un intérêt particulier en degrés récents portant gamme complète, agencée pour 1 à n, le degré d'insertion peut supporter trouvé approprié conformément à la relation d'amplitude est supérieure au milieu et signe inférieur (à savoir, « > » et « < »), de sorte l'inégalité est devenu un nombre légitime de colonnes.

Mais maintenant, le degré de la main ne porte que k petit symbole dire ( « < » « ), et nk-1 un symbole supérieur (i.e.., »> « ), Le degré d'ours veulent savoir pour tout arrangement de 1 à n, le nombre d'arrangement peut l'utilisation de ces symboles, il est des colonnes d'inégalité légitime.

 

Réponse:

dp [i] [j] = (dp [i - 1] [j - 1] * (i - j) + dp [i - 1] [j] * (j + 1))% 2017;

DP [i] [j] désigne le i-ième chiffre a un nombre j et peut être composé d'un petit nombre dans le (numéro de cours est supérieur au nombre i - j - 1 fois, besoin d'utiliser plus tard)

A été ajouté alors que le premier chiffre i + 1, divisé en quatre cas suivants:

  1. Si i + 1 est inséré au début de la séquence en cours, à savoir, avec un <2, 3 rejoint après> 1 <2, trouvera un supérieur ou égal au nombre de fois ajouté! (A ce moment, la relation peut ne pas tenir compte entre 1 et 2, depuis la i + 1> i)
  2. Si i + 1 est inséré dans l'extrémité de la séquence en cours, à savoir, 1 <2 devient 1 <2 <3, se trouve un moins égal au nombre de fois ajouté! (A ce moment, la relation peut ne pas tenir compte entre 1 et 2, depuis la i + 1> i)
  3. Si i + 1 entre un moins-que ajouté, à savoir, ai <2 et 3 a été ajouté à l'intermédiaire, trouver dans un 1 <3> 2, tout en ajoutant un supérieur à nombre égal!
  4. Si le i + 1 intermédiaire est supérieure à l'addition d'un nombre, à savoir, avec 2> 1, en un 2 <3> 1, tout en ajoutant un nombre équivalent inférieur!

En résumé, DP [i] [j] est égal à la somme des quatre cas ci - dessus:

dp [i - 1] [j  ] est ajouté au début de i est égale à un plus grand que le nombre, ce qui nécessite d'avoir un nombre faible lorsque j i-1 numéro;

dp [i - - 1] [  1 j] ont peu nombreux j-1 i est incrémenté lorsque la fin de l'addition d'un nombre égal inférieure à celle nombre requis i-1;

dp [i - 1] [j  ] * j i est appliquée entre un nombre quelconque inférieur, égal à un plus grand que le nombre ajouté, à savoir nécessaire d'avoir un petit nombre lorsque j i-1 nombre, sont chacun inférieur au nombre il peut être fait une fois inséré;

dp [i - 1] [j  - 1] * - (i- j 1) lorsque i est plus grande qu'entre la charge comme un nombre, égal à un de moins que le nombre ajouté, le nombre requis de savoir i-1 j-1 ont e signe inférieur;

A cette époque, le total de (i - 1) - (j - 1) - 1 e nombre est supérieur à, supérieur à chacun d'un certain nombre de ces opérations doit être effectuée en combinant les termes semblables sont dp [i] [j] = (dp [i - 1] [j - 1] * (i - j) + dp [i - 1] [j] * (j + 1)).

Enfin, rappelez-vous de prendre le moule.

......

Pour des raisons d'espace, je ne suis pas à vous montrer, vous devez déposer un ami peut être lettre privée à moi.

Parce que la préparation des entrevues, recueillies précédemment Java Advanced livre « connaissances Java de base de finition .pdf », couvrant le texte intégral de la machine virtuelle Java, serrures, haute concurrence, réflexion, mybatis, principe ressort, micro-services, Zookeeper, bases de données, structures de données, etc. contenu, accès: obtenir la section des commentaires!

Donc, je fus appelé au bureau du patron une tasse de thé, il est parti.

OS: Vous TM mises à pied de licenciements, le test d'assaut comment est - il?


Pendant ce temps, mon travail est d'être un état, nous avons trouvé quelques algorithmes et Android cours concernant la PI (oui, je retourne Andrews, après un problème peut être exploré à explorer)

Aidez à promouvoir ce contenu spécifique de ce cours:

conteneur JAVA

 

arbre

 

Théorie des graphes

 

algorithme

 

Ils abaissent également le fichier vidéo enregistré, ont tous signé avant que la vidéo enregistrée, j'ai regardé plus en détail et les mises à jour en attente de me voir vivre, parce qu'il est de voir la vie.

 

 

 

 

J'ai entendu dire que certaines de ces vidéos peuvent être partagées, je devais être la réponse de lettre privée [de l' information] pour obtenir votre chemin.

Parce que la préparation des entrevues, recueillies précédemment Java Advanced livre « connaissances Java de base de finition .pdf », couvrant le texte intégral de la machine virtuelle Java, serrures, haute concurrence, réflexion, mybatis, principe ressort, micro-services, Zookeeper, bases de données, structures de données, etc. contenu, accès: obtenir la section des commentaires!

Publié 158 articles originaux · louange gagné 43 · vues 20000 +

Je suppose que tu aimes

Origine blog.csdn.net/EnjoyEDU/article/details/105252061
conseillé
Classement