LeetCode刷题(905,766)

【题目要求】
在这里插入图片描述
【解题思路】
本题是排序题,需要循环,判断比较,交换。

题目要求偶数在前,奇数在后,那么我选择采取双指针的方法:

左指针寻找奇数值,右指针寻找偶数值,当符合交换条件时,进行两数交换;

否则指针继续左右运动,寻找符合条件的奇偶值。

当两指针相遇时,结束循环

【代码实现】

public int[] sortArrayByParity(int[] A) {
        if(A == null || A.length == 1)
            return A;
        //左、右指针初始化
        int left = 0;
        int right = A.length - 1;
        int temp;
        while(left < right){
            //左指针对应奇数值,右指针对应偶数值,进行交换
            if((A[left] & 1) == 1 && (A[right] & 1) == 0){
                temp = A[left];
                A[left] = A[right];
                A[right] = temp;
            }else if((A[left] & 1) == 0){
                //左指针对应的是偶数值,符合题意,继续向右移动
                left++;
            }else if((A[right] & 1) == 1){
                //右指针对应的是奇数值,符合题意,继续向左移动
                right--;
            }
        }
        return A;
    }
}

【题目要求】
在这里插入图片描述
【解题思路】

对于对角线上的元素来说,如果当前元素不是第一个出现的元素,那么它前面的元素一定在当前元素的左上角。可以推出,对于位于坐标 (r, c) 上的元素,只需要检查 r == 0 or c == 0 or matrix[r-1][c-1] == matrix[r][c] 就可以了。
【代码实现】

class Solution {
    public boolean isToeplitzMatrix(int[][] matrix) {
        if(matrix.length == 1) {
            return true;
        }
        for(int i = 1; i < matrix.length; i++) {
            for(int j = 1; j < matrix[0].length; j++) {
                if(matrix[i][j] != matrix[i - 1][j - 1]) {
                    return false;
                }
            }
        }
        return true;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值