当前位置: 首页 > wzjs >正文

做平台网站产品上传排名优化公司哪家好

做平台网站产品上传,排名优化公司哪家好,网站开发硬件设计,昆明房地产网站建设【LetMeFly】3355.零数组变换 I:差分数组 力扣题目链接:https://leetcode.cn/problems/zero-array-transformation-i/ 给定一个长度为 n 的整数数组 nums 和一个二维数组 queries,其中 queries[i] [li, ri]。 对于每个查询 queries[i]&am…

【LetMeFly】3355.零数组变换 I:差分数组

力扣题目链接:https://leetcode.cn/problems/zero-array-transformation-i/

给定一个长度为 n 的整数数组 nums 和一个二维数组 queries,其中 queries[i] = [li, ri]

对于每个查询 queries[i]

  • 在 nums 的下标范围 [li, ri] 内选择一个下标 子集。
  • 将选中的每个下标对应的元素值减 1。

零数组 是指所有元素都等于 0 的数组。

如果在按顺序处理所有查询后,可以将 nums 转换为 零数组 ,则返回 true,否则返回 false

 

示例 1:

输入: nums = [1,0,1], queries = [[0,2]]

输出: true

解释:

  • 对于 i = 0:
    <ul><li>选择下标子集 <code>[0, 2]</code> 并将这些下标处的值减 1。</li><li>数组将变为 <code>[0, 0, 0]</code>,这是一个零数组。</li>
    </ul>
    </li>
    

示例 2:

输入: nums = [4,3,2,1], queries = [[1,3],[0,2]]

输出: false

解释:

  • 对于 i = 0: 
    <ul><li>选择下标子集 <code>[1, 2, 3]</code> 并将这些下标处的值减 1。</li><li>数组将变为 <code>[4, 2, 1, 0]</code>。</li>
    </ul>
    </li>
    <li><strong>对于 i = 1:</strong>
    <ul><li>选择下标子集 <code>[0, 1, 2]</code> 并将这些下标处的值减 1。</li><li>数组将变为 <code>[3, 1, 0, 0]</code>,这不是一个零数组。</li>
    </ul>
    </li>
    

 

提示:

  • 1 <= nums.length <= 105
  • 0 <= nums[i] <= 105
  • 1 <= queries.length <= 105
  • queries[i].length == 2
  • 0 <= li <= ri < nums.length

解题方法:差分数组

创建一个 o p op op数组,假设某个query是从 0 0 0 3 3 3,那么就将 o p [ 0 ] op[0] op[0] o p [ 3 ] op[3] op[3]都加一(代表下标 0 0 0 3 3 3都可以被操作一次),其中 o p [ i ] op[i] op[i]代表 n u m s [ i ] nums[i] nums[i]一共被操作多少次。

创建一个 d i f f diff diff数组,其中 d i f f [ i ] diff[i] diff[i]代表数组 o p [ i ] − o p [ i − 1 ] op[i]-op[i-1] op[i]op[i1]差值

假设想让 o p [ l ] op[l] op[l] o p [ r ] op[r] op[r]都加一,那么其实只需要 d i f f [ l ] diff[l] diff[l]加一 d i f f [ r + 1 ] diff[r + 1] diff[r+1]减一, o p op op数组直接扔了都行。

执行完所有操作(更新好diff数组)后, ∑ 0 i d i f f [ i ] \sum_0^i diff[i] 0idiff[i]即为 o p [ i ] op[i] op[i]的值。

如果存在任何一个 i i i n u m s [ i ] > o p [ i ] nums[i]\gt op[i] nums[i]>op[i],就说明 n u m s [ i ] nums[i] nums[i]无法减为 0 0 0,返回false

  • 时间复杂度 O ( l e n ( q u e r i e s ) + l e n ( n u m s ) ) O(len(queries)+len(nums)) O(len(queries)+len(nums))
  • 空间复杂度 O ( l e n ( n u m s ) ) O(len(nums)) O(len(nums))

AC代码

C++
/** @Author: LetMeFly* @Date: 2025-05-21 23:06:35* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-21 23:14:28*/
class Solution {
public:bool isZeroArray(vector<int>& nums, vector<vector<int>>& queries) {vector<int> diff(nums.size() + 1);for (vector<int>& q : queries) {diff[q[0]]++;diff[q[1] + 1]--;}int cnt = 0;for (int i = 0; i < nums.size(); i++) {cnt += diff[i];if (nums[i] > cnt) {return false;}}return true;}
};
Python
'''
Author: LetMeFly
Date: 2025-05-21 23:06:35
LastEditors: LetMeFly.xyz
LastEditTime: 2025-05-21 23:19:48
'''
from typing import Listclass Solution:def isZeroArray(self, nums: List[int], queries: List[List[int]]) -> bool:diff = [0] * (len(nums) + 1)for l, r in queries:diff[l] += 1diff[r + 1] -= 1cnt = 0for i in range(len(nums)):cnt += diff[i]if nums[i] > cnt:return Falsereturn True
Java
/** @Author: LetMeFly* @Date: 2025-05-21 23:06:35* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-21 23:20:50*/
class Solution {public boolean isZeroArray(int[] nums, int[][] queries) {int[] diff = new int[nums.length + 1];for (int[] q : queries) {diff[q[0]]++;diff[q[1] + 1]--;}int cnt = 0;for (int i = 0; i < nums.length; i++) {cnt += diff[i];if (nums[i] > cnt) {return false;}}return true;}
}
Go
/** @Author: LetMeFly* @Date: 2025-05-21 23:06:35* @LastEditors: LetMeFly.xyz* @LastEditTime: 2025-05-21 23:23:00*/
package mainfunc isZeroArray(nums []int, queries [][]int) bool {diff := make([]int, len(nums) + 1)for _, q := range queries {diff[q[0]]++diff[q[1] + 1]--}cnt := 0for i := 0; i < len(nums); i++ {cnt += diff[i]if nums[i] > cnt {return false}}return true
}

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

http://www.dtcms.com/wzjs/85923.html

相关文章:

  • 个体商户建自己的网站做销售投放广告的网站
  • 福建众利建设工程网站seo外链优化
  • 高端网约车司机真实收入新网站百度seo如何做
  • 云南网站建设企业百度云搜索引擎官网入口
  • 建设银行济宁分行网站短信营销平台
  • 长沙建设银行招聘网站吉林黄页电话查询
  • 视频网站建设费用恶意点击竞价是用的什么软件
  • 如何查看vs中建设好的网站微博营销案例
  • 网页制作与网站建设实战大全 pdf百度贴吧热线客服24小时
  • 剑网三魁首怎么做网站域名买卖交易平台
  • 那些外贸网站个人可以做北京百度竞价托管公司
  • 做云盘网站哪个好百度广告一级代理
  • 马鞍山网站建设设计北京搜索引擎推广服务
  • 上哪儿找做网站网站开发流程有哪几个阶段
  • b2c网站说明文档seo基础优化包括哪些内容
  • 长春网站建长春做网站东莞网络营销公司
  • 有趣的wordpress插件青岛百度关键词优化
  • 百容千域可以免费做网站吗网站都有哪些
  • 新乡网站开发公司海外推广服务
  • 国内做ebay用哪个网站长沙百度快速排名优化
  • wordpress评论开启seo排名工具提升流量
  • 如何做网站栏目规划网站推广的6个方法是什么
  • 自己的网站怎么做网络营销推广实战宝典
  • 广州小企业网站制作怎么在百度免费推广
  • 泉州做网站优化价格市场营销推广活动方案
  • 天津工程建设协会网站安顺seo
  • 做网站的公司如何运营产品营销策划方案
  • 网站开发后端用什么爱站网关键词查询网站的工具
  • 搭建网站代码网络营销专业介绍
  • 网页效果制作优化大师官网登录入口