LeetCode210511至少是其他数字两倍的最大数和托普利茨矩阵
Posted 程序彤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode210511至少是其他数字两倍的最大数和托普利茨矩阵相关的知识,希望对你有一定的参考价值。
至少是其他数字两倍的最大数
思路:先一次遍历出最大数,记录其最大数值和最大数的下标。再次遍历数组,判断如果当前数不为最大数时并且当前数的两倍如果大于最大数值,则返回-1,其他数字的两倍大于了最大数,不满足题意。否则最终 返回最大数的下标
int maxN = 0;
int n = arr.length;
int maxI = 0;
for (int i = 0; i < n; i++) {
if (arr[i] > maxN) {
maxN = arr[i];
maxI = i;
}
}
for (int i = 0; i < n; i++) {
if (arr[i]!=maxN && arr[i]*2>maxN){
return -1;
}
}
return maxI;
托普利茨矩阵
思路:定义矩阵的行和列数,从第二行和第二列开始算起,即i=1,j=1,因为又arr[ i ][ j ] != arr[ i-1 ][ j-1 ]时,即不满足果矩阵上每一条由左上到右下的对角线上的元素都相同的题意,返回false,否则就返回true。
int m = arr.length;
int n = arr[0].length;
for (int i = 1; i < m; i++) {
for (int j = 1; j < n; j++) {
if (arr[i][j] != arr[i-1][j-1]){
return false;
}
}
}
return true;
以上是关于LeetCode210511至少是其他数字两倍的最大数和托普利茨矩阵的主要内容,如果未能解决你的问题,请参考以下文章
《LeetCode之每日一题》:265.至少是其他数字两倍的最大数
JS leetcode 至少是其他数字的两倍的最大数 解答思路分析