01/10/2018, 14:44
C++ Hackerrank Day 11:2D Arrays
Link: https://www.hackerrank.com/contests/30-days-of-code/challenges/day-11-more-review
Chương trình như thế này:
#include <vector>
#include <iostream>
using namespace std;
int main(){
int arr[6][6];
std::vector <int> sum;
int i,j,max=0;
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
cin >> arr[i][j];
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
sum.push_back(arr[i][j]+arr[i][j+1]+arr[i][j+2]+arr[i+1][j+1]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2]);
}
}
sort(sum.begin(),sum.end());
cout << *(sum.end()-1);
return 0;
}
Ở dòng cout << *(sum.end()-1):tại sao phải dùng sum.end()-1 thì mới ra đúng kết quả,còn sum.end() thì chương trình xuất kết quả là 0.
int main(){
int arr[6][6];
int i,j,a,b,sum=0,max=0;
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
{
cin >> arr[i][j];
}
}
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
sum=0;
sum=arr[i][j]+arr[i][j+1]+arr[i][j+2]+arr[i+1][j+1]+arr[i+2][j]+arr[i+2][j+1]+arr[i+2][j+2];
if(sum>max|| i == 0 && j == 0)
max=sum;
}
}
cout << max;
return 0;
}
Mình phải dùng i == 0 && j == 0,nếu không có nó thì 2 case đưa ra kết quả sai.Các bạn giúp mình với,cảm ơn nhiều.
Bài liên quan
Đề bài: Cho pattern “đồng hồ cát” (nó giống chữ I hơn - ND) có hình dạng như sau:
? ? ?
X ? X
? ? ?
Ma trận 6*6 gồm 16 pattern như vậy. Tính tổng lớn nhất của một pattern, với đk các phần tử có trị tuyệt đối ko qúa 9.
Đoạn 1: Thực ra lấy max (hay thứ j) thì chẳng cần sort làm gì, có
std::max_element
nhưng màend()
là không có dữ liệu đâu.Đoạn 2: max gán bằng 0 là không đúng, theo đề bài thì set max = -9*7 thôi.
Thứ 1:Mình dùng .begin() và .end() vì mình muốn thử tính năng sort
Mình hỏi ngu tí:tại sao end() lại không có dữ liệu,mình nghĩ nó trỏ đến phần tử cuối cùng của vector
Thứ 2 mình đã hiểu,cảm ơn bạn nhiều
http://en.cppreference.com/w/cpp/container/vector/end
Phần tử cuối cùng của vector là phần tử ngay trước end().
Cảm ơn 2 bạn nhiều,mình đã rõ.
Thực ra
std::max_element()
dạng hai tham số cú pháp cũng tương tự thôi. Khi nào cần thứ tự đặc biệt (thay vì dùng op) thì mới thấy hết khả năng của hàmstd::sort()
.