Участник:Rublev.mv — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Содержимое страницы заменено на «Рублев Максим Владимирович М05-906а»)
 
Строка 1: Строка 1:
 
Рублев Максим Владимирович  М05-906а
 
Рублев Максим Владимирович  М05-906а
 
8) https://leetcode.com/problems/super-washing-machines/
 
 
<code-java>
 
 
class Solution {
 
    public int findMinMoves(int[] machines) {   
 
        int sum = 0;
 
        for(int things: machines) {
 
            sum += things;
 
        }     
 
       
 
        if(sum%machines.length != 0) {
 
            return -1;
 
        }
 
 
        int average = sum/machines.length;
 
        int mrb = 0;
 
        int mol = 0;
 
        int rb = 0;
 
       
 
        for(int things: machines) {
 
            int ol = things - average;
 
            rb += ol;
 
            mrb = Math.max(mrb, Math.abs(rb));
 
            mol = Math.max(mol, ol);
 
        }
 
       
 
        return Math.max(mol, mrb);
 
}
 
}
 
 
</code-java>
 
 
 
9) https://leetcode.com/problems/maximum-product-of-splitted-binary-tree/
 
 
<code-java>
 
 
/**
 
* Definition for a binary tree node.
 
* public class TreeNode {
 
*    int val;
 
*    TreeNode left;
 
*    TreeNode right;
 
*    TreeNode() {}
 
*    TreeNode(int val) { this.val = val; }
 
*    TreeNode(int val, TreeNode left, TreeNode right) {
 
*        this.val = val;
 
*        this.left = left;
 
*        this.right = right;
 
*    }
 
* }
 
*/
 
class Solution {
 
    public int maxProduct(TreeNode root) {
 
        Set<Integer> s = new HashSet<>();
 
        int t = find(root, s);
 
        long max = 0;
 
        for (long sum : s) {
 
            max = Math.max(max, sum * (t - sum));
 
        }
 
        return (int) (max % (100000000));
 
    }
 
 
 
    public int find(TreeNode root, Set<Integer> s) {
 
        if (root == null)
 
            return 0;
 
        int sum = find(root.left, s) + find(root.right, s) + root.val;
 
        s.add(sum);
 
        return sum;
 
    }
 
 
 
}
 
 
</code-java>
 
 
 
10) https://leetcode.com/problems/maximal-square/
 
 
<code-java>
 
 
class Solution {
 
    public int maximalSquare(char[][] matrix) {
 
          if(matrix==null||matrix.length==0){
 
        return 0;
 
    }
 
 
    int res=0;
 
    int[][] m = new int[matrix.length][matrix[0].length];
 
 
    for(int i=0; i<matrix.length; i++){
 
        m[i][0]=matrix[i][0]-'0';
 
        res=Math.max(res, m[i][0]);
 
    }
 
 
    for(int j=0; j<matrix[0].length; j++){
 
        m[0][j]=matrix[0][j]-'0';
 
        res=Math.max(res, m[0][j]);
 
    }
 
 
    for(int i=1; i<matrix.length; i++){
 
        for(int j=1; j<matrix[0].length; j++){
 
            if(matrix[i][j]=='1'){
 
                int min = Math.min(m[i-1][j], m[i][j-1]);
 
                min = Math.min(min, m[i-1][j-1]);
 
                m[i][j]=min+1;
 
 
                res = Math.max(res, min+1);
 
            }else{
 
                m[i][j]=0;
 
            }   
 
        }
 
    }
 
 
    return res*res;
 
    }
 
}
 
 
</code-java>
 

Текущая версия на 16:15, 28 декабря 2020

Рублев Максим Владимирович М05-906а