Edisi # 30: Pelatihan TI - masalah saat ini dan tantangan dari perusahaan terkemuka

Halo! Kita disini! Hari ini kami memiliki artikel Yobel di nomor 30!

Kami sekali lagi mempersiapkan untuk Anda sejumlah pertanyaan dan tugas menarik dari wawancara di perusahaan IT terkemuka! Jawaban untuk masalah dari masalah sebelumnya telah dipublikasikan .



Masalah akan muncul setiap minggu - tetap disini! Kolom ini didukung oleh agen perekrutan Spice IT .

Minggu ini kami mengumpulkan tugas dari wawancara di perusahaan Visa Amerika.

Pertanyaan


1. 100 Tahanan dengan Topi Merah / Hitam
100 tahanan di penjara berdiri dalam antrian menghadap ke satu arah. Setiap tahanan mengenakan topi warna hitam atau merah. Seorang tahanan dapat melihat topi semua tahanan di depannya dalam antrian, tetapi tidak dapat melihat topinya dan topi tahanan berdiri di belakangnya.
Penjara akan menanyakan warna topi masing-masing tahanan mulai dari tahanan terakhir dalam antrian. Jika seorang tahanan memberi tahu warna yang benar, maka disimpan, jika tidak dieksekusi. Berapa banyak tahanan yang bisa diselamatkan paling banyak jika mereka diizinkan untuk membahas strategi sebelum sipir penjara mulai menanyakan warna topi mereka.

Transfer
100 . . , , .
, . , , , . , , .
.

2. Rasio Laki-laki dan Perempuan di Negara tempat orang hanya menginginkan anak laki-laki
Di suatu negara, semua keluarga menginginkan anak laki-laki. Mereka terus memiliki bayi hingga anak laki-laki lahir. Berapa rasio yang diharapkan dari anak laki-laki dan perempuan di negara ini?

Transfer
. . ?

Tugas


1. Masalah The Malas Caterer
Dengan bilangan bulat N , menunjukkan jumlah potongan yang dapat dibuat pada pancake, cari jumlah maksimum potongan yang dapat dibentuk dengan membuat potongan N.

Input:
Baris input pertama berisi bilangan bulat tunggal T yang menunjukkan jumlah kasus uji. Kemudian ikuti uji T. Setiap test case terdiri dari satu baris. Baris pertama dari setiap test case terdiri dari bilangan bulat N.

Output:
Sesuai dengan setiap test case, pada baris baru, cetak jumlah maksimum potongan yang dapat dibentuk dengan membuat potongan N.

Kendala: Contoh: Input Output

1 ≀ T ≀ 100
1 ≀ N ≀ 106




2
5
3


16
7

Transfer
N, , . , , N .

:
T, . T. . N.

:
, , N .

:

1 ≀ T ≀ 100
1 ≀ N ≀ 106


:

2
5
3


16
7

2. Elemen puncak
Given an array A of N integers. The task is to find a peak element in it.
An array element is peak if it is not smaller than its neighbours. For corner elements, we need to consider only one neighbour.

Note: There may be multiple peak element possible, in that case you may return any valid index.

Input Format:
The first line of input contains an integer T denoting the number of test cases. Then T test cases follow. Each test case contains an integer N. Then in the next line are N space separated values of the array.

Output Format:
For each test case output will be 1 if the index returned by the function is an index with peak element.

User Task:
Anda tidak harus mengambil input apa pun. Lengkapi saja fungsi peakElement yang disediakan () dan kembalikan indeks yang valid.

Kendala: Contoh: Input: Output: Penjelasan: Testcase 1: Dalam array yang diberikan, 3 adalah elemen puncak. Testcase 2: 4 adalah elemen puncak.
1 <= T <= 100
1 <= N <= 100
1 <= A[] <= 1000




2
3
1 2 3
2
3 4


3
4





Transfer
A N . , .
, . .

. , .

:
T, . T. N. N .

:
1 <= T <= 100
1 <= N <= 100
1 <= A [] <= 1000


:
:

2
3
1 2 3
2
3 4

:
3
4


:
1:
3 .
2: 4 .

3. Interval Maksimal Tumpang tindih
Consider a big party where a log register for guest’s entry and exit times is maintained. Find the time at which there are maximum guests in the party. Note that entries in register are not in any order.

Input:
The first line of input contains an integer T denoting the number of test cases. Then T test cases follow. Each test case contains an integer n denoting the size of the entry and exit array. Then the next two line contains the entry and exit array respectively.

Output:
Print the maximum no of guests and the time at which there are maximum guests in the party.

Constraints:
1<=T<=10^5
1<=N<=10^5
1<=entry[i],exit[i]<=10^5


Example:
Input:

2
5
1 2 10 5 5
4 5 12 9 12
7
13 28 29 14 40 17 3
107 95 111 105 70 127 74


Output:
3 5
7 40

, . , . , .

:
T, . T. n, . .

:
, .

:
1 <= <= 10 ^ 5
1 <= N <= 10 ^ 5
1 <= [I], [I] <= 10 ^ 5


:
:

2
5
1 2 10 5 5
4 5 12 9 12
7
13 28 29 14 40 17 3
107 95 111 105 70 127 74


:
3 5
7 40



1
99 , 100- 50-50 .
, .

100- , . , , 99- .

99- 100- . 100-. 99- .

100- «» ( )
) 99- , .
) 99- , β€” .

100- «» ( )
) 99- , β€” .
) 99- , β€” .

98- 99- .

97 1 .

2
: . , , , .

.
NG .

, (1-p) , .

NG .

NG = 0*(1-p) + 1*p*(1-p) + 2*p*p*(1-p) + 3*p*p*p*(1-p) + 4*p*p*p*p*(1-p) +.....

p = 1/2 (1-p) = 1/2 .

NG = 0*(1/2) + 1*(1/2)2 + 2*(1/2)3 + 3*(1/2)4 + 4*(1/2)5 + ...
1/2*NG = 0*(1/2)2 + 1*(1/2)3 + 2*(1/2)4 + 3*(1/2)5 + 4*(1/2)6 + ...


NG - NG/2 = 1*(1/2)2 + 1*(1/2)3 + 1*(1/2)4 + 1*(1/2)5 + 1*(1/2)6 + ...

1
NG/2 = (1/4)/(1-1/2) = 1/2

NG = 1

1
, : (n + c*c + 2) / 2
int main() {
	int t,n,final;
	cin>>t;
	while(t--){
	   cin>>n;
	   final=(n+(n*n)+2)/2;
	   cout<<final<<endl;
	}
	return 0;
}

2
// arr: input array
// n: size of array
int peakElement(int a[], int n)
{
    int i;
    for(i=1;i<n-1;i++){
        if(a[i]>a[i-1] && a[i]>a[i+1]){
            return i;
        }
    }
    if(n>1 && a[0]>a[1])
        return a[0];
    if(n-2>=0 && a[n-1]>a[n-2])
    return a[n-1];
}

3
/*package whatever //do not write package name here */

import java.util.*;
import java.lang.*;
import java.io.*;

class GFG {
	public static void main (String[] args) {
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		
		while (T > 0) {
		    int N = sc.nextInt();
		    int[] entry = new int[N];
		    int[] exit = new int[N];
		    for (int i = 0; i < N; i++) {
		        entry[i] = sc.nextInt();
		    }
		    
		    for (int i = 0; i < N; i++) {
		        exit[i] = sc.nextInt();
		    }
		    
		    Arrays.sort(entry);
		    Arrays.sort(exit);
		    //System.out.println(Arrays.toString(entry));
		    //System.out.println(Arrays.toString(exit));
		    
		    int counter = 0;
		    int maxCounter = -1;
		    int maxTime = -1;
		    
		    int entryIdx = 0;
		    int exitIdx = 0;
		    
		    while (entryIdx < N && exitIdx < N) {
		        if (entry[entryIdx] <= exit[exitIdx]) {
		            counter++;
		            if (counter > maxCounter) {
		                maxCounter = counter;
		                maxTime = entry[entryIdx];
		            }
		            entryIdx++;
		        } else {
		            counter--;
		            exitIdx++;
		        }
		    }
		    
		    System.out.println(maxCounter + " " + maxTime);   
		    T--;
		}
	}
}

Source: https://habr.com/ru/post/undefined/


All Articles