Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C#, C++, Go, Java, Pascal, Perl, PHP, Python, Ruby, Rust, Scratch, Swift
Cho một mảng các số nguyên có ~n~ phần tử, bạn hãy tìm ra phần tử lớn thứ hai của mảng. Phần tử lớn thứ 2 bắt buộc phải nhỏ hơn, không chấp nhận bằng phần tử lớn nhất.
Input
- Dòng đầu tiên là số nguyên dương ~n~, số lượng phần tử của mảng, (~2 \le n \le 10^6~)
- Dòng tiếp theo là ~n~ số nguyên của mảng, (~|a_{i}| \le 10^9~)
Output
- Nếu tìm thấy số lớn thứ 2 trong mảng, in ra số đó
- Nếu không tìm thấy thì in ra
NOT FOUND
Sample
Input #1
3
1 2 3
Output #1
2
Bình luận
include<stdio.h>
include<math.h>
void nhap1(unsigned long n, long long a[]) { int i; for(i=0;i<n;i++) { scanf("%lld",&a[i]); } }
int main() { unsigned long n; scanf("%lu",&n); if(n<2) printf("NOT FOUND"); else { long long a[n]; long long b[n]; nhap1(n,a); int i,j,k=0; long long max=a[0]; for(i=1;i<n;i++) { if(a[i]>max) max=a[i]; } for(i=0;i<n;i++) { if(a[i]<max) { b[k]=a[i]; k++; } } if(k==0) printf("NOT FOUND"); else { long long T=b[0]; for(j=0;j<k;j++) { if(T<b[j]) T=b[j]; } printf("%lld",T); } } return 0; }
test 3 vói test cuối bị sao vậy ạ
include <bits/stdc++.h>
using namespace std; int main(){ int n;cin>>n; int a[n]; int m=0; for(int i=0;i<n;i++){ cin>>a[i]; } sort(a,a+n); m=a[n-1]; for(int i=n-2; i>=0;i--){ if(a[i]<m){ cout<<a[i]; break; } if(i==0 && a[i]<=m) cout<<"NOT"; } }
test 3 hình như là số âm, test cuối là các số bằng nhau
include <stdio.h>
void findSecondLargest(int arr[], int n) { if (n < 2) { printf("NOT FOUND\n"); return; }
}
// Hàm main để thử nghiệm int main() { int n; scanf("%d", &n);
}
include <bits/stdc++.h>
$$Full test!$$
Full test nhé
include<bits/stdc++.h>
using namespace std; int main() { int n; cin>>n; int a[n]; int maxx=-1e9; int dem=0; for(int i=0;i<n;i++) { cin>>a[i]; } for(int i=0;i<n;i++) { if(a[i]==a[i+1]) dem++; } if(dem==n-1) cout<<"NOT FOUND"; else { for(int i=0;i<n;i++) { if(maxx<a[i]) maxx=a[i]; } //cout<<maxx; int maxx2=-1e9; for(int i=0;i<n;i++) { if(maxx2<a[i]&&a[i]!=maxx) maxx2=a[i]; } cout<<maxx2; } return 0; }
C++
include <bits/stdc++.h>
define db double
define ll long long
define fl float
using namespace std; set <ll> s; vector <ll> v;
void solve () { int dem=0; int n; cin>>n;
}
int main() { solve();
}
giao lưu 1 tý C++ ạ ^^
include <iostream>
include <climits>
using namespace std;
void nhap(int n, int a[]) { for (int i = 0; i < n; i++) { cin >> a[i]; } }
int Max(int n, int a[]) { int max = a[0]; for (int i = 0; i < n; i++) { if (max < a[i]) { max = a[i]; } } return max; }
int soLonThuHai(int n, int a[]) { int soLonThuHai = INT_MIN; int max = Max(n, a); for (int i = 0; i < n; i++) { if (a[i] < max && soLonThuHai < a[i]) { soLonThuHai = a[i]; } } return soLonThuHai; }
int main() { int n; cin >> n; int a[1000000];
if (2 <= n && n <= 1000000) { nhap(n, a); int result = soLonThuHai(n, a); if (result != INT_MIN) { cout << result; } else { cout << "NOT FOUND"; } } else { cout << "NOT FOUND"; }
return 0; }
Các tính đồ Java 8+ yêu quý, tham khảo code mình nếu chưa làm được. Thấy hay xin up vote nhé :D
Hỗ trợ mọi người nha!
include<bits/stdc++.h>
using namespace std; int main(){ int n;cin >>n; int a[n]; int max1=INTMIN,max2=INTMIN; for(int i=0;i<n;i++){ cin >> a[i]; } for(int i=0;i<n;i++){ if(max1 < a[i]){ max1 = a[i]; } } int check=0; for(int i=0;i<n;i++){ if(max2 < a[i] && a[i]!=max1){ check=1; max2=a[i]; } } if(check==0){ cout <<"NOT FOUND"; } else{ cout << max2; } }
n=int(input()) a=list(map(int,input().split())) a.sort() d=0 for j in range(len(a)): r=a[j] if r+0==max(a): d=d+1 if len(a)<2: print('NOT FOUND') else: for i in range(len(a)-1): b=a[i] if min(a)==max(a): print('NOT FOUND') elif b==max(a): for k in range(len(a)-d): c=a[k] print(c) else: print(b)
py3
DENO PROVJP
#include <stdio.h> int main(){ int n; long long a[50]; int max=-99999; int max2=max; int d=max; scanf("%d",&n); for(int i=0;i<n;i++){ scanf("%lld",&a[i]); } for(int i=0;i<n;i++){ if(a[i]>max)max=a[i]; } for(int i=0;i<n;i++){ if(a[i]>max2&&a[i]!=max)max2=a[i]; } if(max2==d){ printf("NOT FOUND"); } else{ printf("%d",max2); } }
mong ad capaj nhaats tinh năng hiện phần dữ liệu test case đầy đủ mỗi bài thì test sẽ dễ ạ
ai chưa làm đc có thể tham khảo code py3:
quicksort(); rồi kiểm tra phần tử đầu và cuối bằng nhau không nếu = thì NOT FOUND. chạy 1 vòng for kiểm tra con if a[n-1]>a[i] thì in ra a[i] rồi break; else continue;
Test 7 là sao vậy mọi người ơi
ae cho mình xin test6 với ;-;
include<bits/stdc++.h>
using namespace std;
int main() { int n; cin >> n; vector<int> arr(n); for(int i=0; i<n; i++) { cin >> arr[i]; }
}
mình giải đc rồi,các bạn tham khảo code của mình nhé(python3): n = int(input()) A = list(map(int, input().split()))
if len(A) < 2: print("NOT FOUND") else: max1 = max(A) max2 = float('-inf')
giải thích: Nếu danh sách A có ít nhất 2 phần tử, chương trình sẽ tìm phần tử lớn nhất trong danh sách (max1) và khởi tạo max2 với giá trị âm vô cùng. chương trình sử dụng vòng lặp để duyệt qua từng phần tử trong danh sách A. Nếu phần tử này nhỏ hơn max1 và lớn hơn max2, nó sẽ cập nhật max2 thành giá trị của phần tử này. chương trình kiểm tra xem max2 có được cập nhật từ giá trị âm vô cùng ban đầu hay không. Nếu max2 không thay đổi, điều này có nghĩa là không có phần tử nào trong danh sách A nhỏ hơn phần tử lớn nhất (max1). Trong trường hợp này, nó sẽ in ra "NOT FOUND". Ngược lại, nếu có phần tử lớn thứ hai, nó sẽ in ra giá trị đó.
include<bits/stdc++.h>
using namespace std;
int main(){ iosbase::syncwith_stdio(false); cin.tie(0); cout.tie(0); int n; cin >> n; int a[n]; for(int &x:a) cin >> x; sort(a,a + n,greater<int>()); for(int i = 1;i < n;i++){ if(a[i] != a[0]){ cout << a[i]; return 0; } } cout << "NOT FOUND"; }
Bài này nếu mn code c++ thì có thể xài set rồi dịch con trỏ 1 cái từ vị trí cuối là dc nghen
mn cho em hỏi test 6 là gì v ạ
cái trường hợp đấy là tất cả các số bằng nhau nó mới không tìm được đấy bạn ạ
Quick Sort
Đề này chắc chỉ có code trâu thôi ad ơi :((
Bình luận này đã bị ẩn vì có quá nhiều phản ứng tiêu cực. Nhấn để xem.