美文网首页
LeetCode | 算法:矩阵置0、删除重复邮箱

LeetCode | 算法:矩阵置0、删除重复邮箱

作者: 松鼠的读书笔记 | 来源:发表于2019-01-07 18:50 被阅读18次

73. Set Matrix Zeroes

Given a n x m matrix, if an element is 0, set its entire row and column to 0. Do it in-place.
Example :
Input:
[ [0,1,2,0],
[3,4,5,2],
[1,3,1,5] ]
Output:
[ [0,0,0,0],
[0,4,5,0],
[0,3,1,0] ]
笔记:
(1)分别用两个集合记录下含0的行号和列号,然后再修改矩阵。
(2)时间复杂度O(nm),空间复杂度O(n+m)。

class Solution:
    def setZeroes(self, matrix):
        """
        :type matrix: List[List[int]]
        :rtype: void Do not return anything, modify matrix in-place instead.
        """
        # 先找到含0的行列
        zero_row = set()
        zero_col = set()
        
        n = len(matrix)     #行数
        m = len(matrix[0])  #列数
        
        for row in range(n):
            for col in range(m):
                if matrix[row][col] == 0:
                    zero_row.add(row)
                    zero_col.add(col)
        
        #好啦,现在我们来把含0的行列置为0
        for row in range(n):
            if row in zero_row:
                matrix[row] = [0] * m
            for col in zero_col:
                matrix[row][col] = 0

196. Delete Duplicate Emails【这道是SQL,惊不惊喜意不意外!】

Write a SQL query to delete all duplicate email entries in a table named Person, keeping only unique emails based on its smallest Id.

举个栗子.png
笔记:
select distinct Email没用的,select只是查询,这里要改表,要用delete.
# MySQL
# solution 1(faster)
DELETE p1 FROM Person p1,Person p2
WHERE p1.Email = p2.Email AND p1.Id > p2.Id;

# solution 2(slower but easier to understand)
DELETE FROM Person 
WHERE Id NOT IN 
     (SELECT MIN([p.Id]) FROM (SELECT * FROM Person) p
     Group by p.Email);

相关文章

  • LeetCode | 算法:矩阵置0、删除重复邮箱

    73. Set Matrix Zeroes Given a n x m matrix, if an element...

  • [LeetCode]73、矩阵置0

    题目描述 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。...

  • 力扣的SQL题目

    删除重复的电子邮箱[https://leetcode-cn.com/problems/delete-duplica...

  • 【LeetCode】196. 删除重复的电子邮箱

    LeetCode数据库题目 题目 编写一个 SQL 查询,来删除 Person表中所有重复的电子邮箱,重复的邮箱里...

  • LeetCode基础算法-数组

    LeetCode基础算法-数组 算法 LeetCode 数组相关 1. 从排序数组中删除重复项 描述:给定一个排序...

  • 矩阵置0

    给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。 示例 1...

  • 矩阵置0

    题目描述:给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。...

  • 【leetcode-数组】矩阵置零

    【leetcode-数组】矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都...

  • 矩阵置零

    矩阵置零 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0。请使用原地算法。...

  • leetcode数据库类型:196.删除重复的电子邮箱,难度:简

    leetcode数据库类型:196.删除重复的电子邮箱,难度:简单 解答: 我们可以使用delete和where子...

网友评论

      本文标题:LeetCode | 算法:矩阵置0、删除重复邮箱

      本文链接:https://www.haomeiwen.com/subject/yqcprqtx.html