Leetcode 3354. Make Array Elements Equal to Zero

  • [Leetcode 3354. Make Array Elements Equal to Zero](#Leetcode 3354. Make Array Elements Equal to Zero)
    • [1. 解题思路](#1. 解题思路)
    • [2. 代码实现](#2. 代码实现)

1. 解题思路

这一题是一道easy的题目,本来没想写的,因为完全可以暴力搞定,不过这里还是写了一下,因为这道题多少还是比较巧妙的,问题的描述一大把,事实上就是要分析在什么条件下可以使得数组归零,而这个的回答就是要求:

  • 元素两侧的元素之和相同,此时往哪个方向开始均可以,有两种走法;
  • 元素两侧的元素之差为1,此时往多的那一侧行走可以归零,有且只有一种走法;

因此,这道题事实上就变成一个累计数组的题目了, O ( N ) O(N) O(N)的算法复杂度即可完成。

2. 代码实现

给出python代码实现如下:

python 复制代码
class Solution:
    def countValidSelections(self, nums: List[int]) -> int:
        s = sum(nums)
        pre = 0
        ans = 0
        for num in nums:
            left = pre
            right = s-pre-num
            if num == 0:
                if left == right:
                    ans += 2
                elif abs(left-right) == 1:
                    ans += 1
            pre += num
        return ans

提交代码评测得到:耗时48ms,占用内存16.7MB。

相关推荐
yyds_yyd_100861 天前
1464. 数组中两元素的最大乘积(2026.07.27)
数据结构·c++·算法·leetcode
玖玥拾1 天前
LeetCode 26 删除有序数组中的重复项
算法·leetcode
白白白小纯2 天前
算法篇—返回倒数第k个节点
c语言·数据结构·算法·leetcode
退休倒计时2 天前
【复习】LeetCode 二叉树DFS TypeScript
算法·leetcode·typescript·深度优先
白白白小纯2 天前
算法篇—链表的中间节点
c语言·数据结构·算法·leetcode
Frostnova丶2 天前
(19)LeetCode 54. 螺旋矩阵
算法·leetcode·矩阵
Frostnova丶2 天前
(18)LeetCode 73. 矩阵置零
算法·leetcode·矩阵
番茄撒旦在上2 天前
LeetCode 98.验证二叉搜索树-Medium
算法·leetcode
rannn_1112 天前
【力扣hot100】哈希表专题——从两数之和到最长连续序列
java·算法·leetcode·哈希
go不是csgo2 天前
从模板到五道 LeetCode:完全背包的 Golang 教学笔记
笔记·leetcode·golang