LeetCode每日刷题Day3---237删除链表中的节点、832翻转图像

237删除链表中的节点

思路与结果

在这里插入图片描述

代码

/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode(int x) { val = x; }
 * }
 */
class Solution {
    public void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }
}

832反转图像

思路与结果

在这里插入图片描述

代码

思路2

package Day3_4_15.L832;

public class Solution {
    public int[][] flipAndInvertImage(int[][] A){
//        因为如果A为1阶矩阵,按照这种倒序for循环的条件,是进不去的。
        if (A.length == 1){
            A[0][0] = replace(A[0][0]);
            return A;
        }
        for (int i = 0; i < A.length; i++) {
            for (int min = 0, max = A.length -1; min < max; min++, max--) {
                int temp = A[i][min];
                A[i][min] = A[i][max];
                A[i][max] = temp;

                A[i][min] = replace(A[i][min]);
                A[i][max] = replace(A[i][max]);

                if (min == max - 2) {
                    A[i][min+1] = replace(A[i][min+1]);
                }


            }
        }
        return A;
    }
    public int replace(int a){
        if (a == 0){
            return 1;
        }else {
            return 0;
        }
    }
}

思路1

package Day3_4_15.L832;

public class Solution2 {
    public int[][] flipAndInvertImage(int[][] A){

        for (int i = 0; i < A.length; i++) {
            for (int min = 0, max = A.length -1; min < max; min++, max--) {
                int temp = A[i][min];
                A[i][min] = A[i][max];
                A[i][max] = temp;
            }
            for (int i1 = 0; i1 < A.length; i1++) {
                A[i][i1] = replace(A[i][i1]);
            }
        }
        return A;
    }
    public int replace(int a){
        if (a == 0){
            return 1;
        }else {
            return 0;
        }
    }
}

思路3

package Day3_4_15.L832;

public class Solution3 {
    public int[][] flipAndInvertImage(int[][] A){
        if (A.length == 1){
            A[0][0] = replace(A[0][0]);
            return A;
        }
        if (A.length % 2 == 0){
            for (int i = 0; i < A.length; i++) {
                for (int min = 0, max = A.length -1; min < max; min++, max--) {
                    int temp = A[i][min];
                    A[i][min] = A[i][max];
                    A[i][max] = temp;

                    A[i][min] = replace(A[i][min]);
                    A[i][max] = replace(A[i][max]);
                }
            }
        }else {
            for (int i = 0; i < A.length; i++) {
                for (int min = 0, max = A.length - 1; min < max; min++, max--) {
                    int temp = A[i][min];
                    A[i][min] = A[i][max];
                    A[i][max] = temp;

                    A[i][min] = replace(A[i][min]);
                    A[i][max] = replace(A[i][max]);
                }
                A[i][(A.length - 1) / 2] = replace(A[i][(A.length - 1) / 2]);
            }
        }
        return A;
    }
    public int replace(int a){
        if (a == 0){
            return 1;
        }else {
            return 0;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_42252770/article/details/89342988