快慢指针.原地删除数组重复项

server/2024/12/18 6:36:26/
  • 给你一个有序数组 nums ,请你 原地 删除重复出现的元素,使每个元素 只出现一次 ,返回删除后数组的新长度。
  • 不要使用额外的数组空间,你必须在 原地 修改输入数组 并在使用 O(1) 额外空间的条件下完成。

class Solution {
public:int removeDuplicates(vector<int>& nums) {if(nums.size() == 0) return 0;int slow  = 0;int fast = 1;while(fast < nums.size()){if(nums[fast] != nums[slow]){slow++;nums[slow] = nums[fast];}fast++;}return slow+1;}
};

给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。

#include <vector>
#include <algorithm>
#include <iostream>using namespace std;class Solution {
public:int trap(vector<int>& height) {if (height.empty()) return 0; // 如果数组为空,直接返回0int n = height.size();// 计算左边最大高度vector<int> left_max(n);left_max[0] = height[0];for (int i = 1; i < n; ++i) {left_max[i] = max(left_max[i - 1], height[i]);}// 计算右边最大高度vector<int> right_max(n);right_max[n - 1] = height[n - 1];for (int i = n - 2; i >= 0; --i) {right_max[i] = max(right_max[i + 1], height[i]);}// 计算每个柱子能够接的水量int water = 0;for (int i = 0; i < n; ++i) {// 当前柱子接的水量是左边和右边的最大值与当前柱子高度的差water += min(left_max[i], right_max[i]) - height[i];}return water;}
};// 示例测试
int main() {Solution sol;vector<int> height = {0,1,0,2,1,0,1,3,2,1,2,1};cout << "Trapped water: " << sol.trap(height) << endl; // 输出结果: 6return 0;
}


http://www.ppmy.cn/server/151103.html

相关文章

Java——网络编程(中)—TCP通讯(上)

一 (网络编程常用类) (Java为了跨平台&#xff0c;在网络应用通信时是不允许直接调用操作系统接口的&#xff0c;而是由java.net包来提供网络功能。下面来介绍几个java.net包中的常用的类) 1 InetAddress类的使用 (封装计算机的IP地址和DNS) (这个类没有构造方法——>如…

【Vue3学习】Vue3+setup语法糖+typeScript中的组件传值

一、父子组件传值 1. 子组件接收父组件的传值(父向子传值) 父组件 <template><div><ChildComponent name"Alice" :age"25" /></div> </template><script setup lang"ts">import ChildComponent from ./C…

计算机视觉中的特征提取算法

摘要&#xff1a; 本文聚焦于计算机视觉中的特征提取算法&#xff0c;深入探讨尺度不变特征变换&#xff08;SIFT&#xff09;算法。详细阐述 SIFT 算法的原理&#xff0c;包括尺度空间构建、关键点检测、方向分配与特征描述子生成等核心步骤。通过 C#、Python 和 C 三种编程语…

[Unity]Unity跨平台开发之Android入门

安卓环境配置 安装依赖项 推荐使用Unity Hub进行安装&#xff0c;安装时勾选Android Build Support、Android SDK & NDK Tools、OpenJDK。或者指定已安装的依赖项。&#xff08;注意&#xff1a;指定的依赖项需要是从UnityHub安装的。比如之前安装Unity2022时勾选了上述依…

JAVA2笔记第六章

第六章&#xff1a;反射设计模式 一、反射 1. 反射 (Reflection) &#xff1a;允许在程序运行状态中&#xff0c;可以获取任意类中的属性和方法&#xff0c;并且可以操作任意对象内部的属 性和方法&#xff0c;这种动态获取类的信息及动态操作对象的属性和方法对应的机制称…

Go vendor

博主在编写Go代码时&#xff0c;遇到了这样一个问题&#xff1a;想要修改某个外部包&#xff0c;添加几个函数&#xff0c;而其余功能继续使用&#xff0c;经过调研&#xff0c;发现可以将Go的外部包源码复制到项目本地&#xff0c;对包的代码进行修改&#xff0c;从而达到目的…

小程序自定义tab-bar,踩坑记录

从官方下载代码 https://developers.weixin.qq.com/miniprogram/dev/framework/ability/custom-tabbar.html 1、把custom-tab-bar 文件放置 pages同级 修改下 custom-tab-bar 下的 JS文件 Component({data: {selected: 0,color: "#7A7E83",selectedColor: "#3…

智能化API:如何重塑企业业务流程与用户体验

在数字化转型的浪潮中&#xff0c;API&#xff08;应用程序编程接口&#xff09;已成为企业和组织不可或缺的工具。API不仅允许不同应用程序和服务之间进行数据交换和功能整合&#xff0c;还通过其强大的连接性&#xff0c;将各个零散的服务串联成一个强大的整体。随着技术的不…