n^2クリップスキーム
2055 ワード
中に入ると
これは2次元配列を作成した後,その数を増やすために選定した問題である.イメージコードだけを見ると間違いに違いない.私がそうするのは間違っているからです.行と列を利用する数字の中で最も大きいのは、配列された要素に入る問題です.
誤った解答.
for(int i=n-1; i>=0; i--){
for(int j=n-1; j>=0; j--){
arr[i][j] = 0;
}
}
for(int k=n-1; k>=0; k--){
for(int i=n-1; i>=0; i--){
for(int j=n-1; j>=0; j--){
if(arr[i][j] == 0){
if(num == j || num == i){
arr[i][j] = num+1;
}
}else{
continue;
}
}
}
num--;
}
for(int i=0; i<n; i++){
for(int j=0; j<n; j++){
arr2[num2] = arr[i][j];
num2++;
}
}
for(int i=left; i<=right; i++){
answer.push_back(arr2[i]);
}
return answer;
}
コードの説明
答えベクトルの大きさは左右+1である.そんなに大きな値を返す必要があります.行はleft/nを列のright%nとして求め、その中の大きいものを答えに入れます.
コード#コード#
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, long long left, long long right) {
int num = right - left + 1;
vector<int> answer(num);
for (int i = 0; i < num; i++, left++) {
int row = left / n;
int col = left % n;
answer[i] = (row < col ? col : row) + 1;
}
return answer;
}
Reference
この問題について(n^2クリップスキーム), 我々は、より多くの情報をここで見つけました https://velog.io/@jy1999/n2-배열-자르기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol