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

Leetcode(经典题)day1

删除有序数组中的重复项|| 

80. 删除有序数组中的重复项 II - 力扣(LeetCode)

和之前的删除有序数组中的重复项|相似,这里是要求最多出现两次,所以多加一个变量来记录出现次数即可,整体上还是使用双指针,比较容易解出。

public int removeDuplicates(int[] nums) {int p1=0,p2=1,n=1;while (p2<nums.length){if (nums[p1]==nums[p2]){n++;if(n>2){p2++;continue;}}else {n=1;}nums[++p1]=nums[p2++];}return p1+1;}

多数元素

169. 多数元素 - 力扣(LeetCode)

使用投票法:

原理:找一个变量p记录,遇到不一样的就p--,一样就p++;因为题中说要返回的结果他的数量是大于[n/2]的,所以无论过程中怎么++或者--,到最后都会剩下至少一个要返回的数。

public int majorityElement(int[] nums) {int res=0;int tp=0;for(int i=0;i<nums.length;i++){if(tp==0){res=nums[i];}if(nums[i]==res){tp++;}else{tp--;}}return res;}

轮转数组 

189. 轮转数组 - 力扣(LeetCode)

第一步:先将数组整体翻转

第二步:再翻转前k个元素

第三步:再反转剩下的n-k个元素

    public static void rotate(int[] nums, int k) {if(k>nums.length){k=k%nums.length;}fanzhuan(nums,0,nums.length-1);fanzhuan(nums,0,k-1);fanzhuan(nums,k,nums.length-1);}public static void fanzhuan(int[] nums, int l, int r){while(l<r){int temp = nums[l];nums[l++] = nums[r];nums[r--] = temp;}}

买卖股票的最佳时机

121. 买卖股票的最佳时机 - 力扣(LeetCode)

遵循低点买入,高点卖出,所以我认为的关键是找到最低点,然后依次遍历他后面的点找出“最高点”就行了

    public int maxProfit(int[] prices) {int n = prices.length;int max = 0;int min = 100009;for (int i = 0; i < n; i++) {if(prices[i]<min){min = prices[i];}else if(prices[i]-min>max){max = prices[i]-min;}}return max;}

买卖股票的最佳时机||

122. 买卖股票的最佳时机 II - 力扣(LeetCode)

使用贪心,只考虑本天买入和下一天卖出是否能赚,只要能赚(x[i+1]-x[i]>0)则将所赚计入。

    public int maxProfit(int[] prices) {int n = prices.length;int max = 0;for (int i = 0; i < n-1; i++) {max+=prices[i+1]-prices[i]>0?prices[i+1]-prices[i]:0;}return max;}

跳跃游戏

55. 跳跃游戏 - 力扣(LeetCode)

找一个变量max来记录当前能到达的最远距离,遍历数组的每个元素x[i],max<i则意味着到达不了,返回false,如果max>i就进行后续操作,重新计算max的值(重新计算能到到达的最远距离),计算方式就是当前坐标位置加该位置能走几步(x[i]+i),与当前max比较取最大,然后再与数组长度比较,max>=length就返回true。

    public boolean canJump(int[] nums) {int max = 0;for(int i = 0;i < nums.length;i++){if(i<=max){max = (nums[i]+i)>max ? (nums[i]+i):max;if(max>=nums.length-1){return true;}}}return false;}

跳跃游戏||

45. 跳跃游戏 II - 力扣(LeetCode)

要求返回的是最小步数,所以可以考虑使用贪心来解决,每到一个新的位置,就计算比较这个新的位置能到到达的范围中哪一个位置能到达的距离最远(也就是x[i]+i),就选择到哪一个位置,以此类推。

    public int jump(int[] nums) {int max = 0;int end = 0;int n = nums.length;int count = 0;for (int i = 0; i < n-1; i++) {max = nums[i]+i>max?nums[i]+i:max;if (end==i) {end = max;count++;}}return count;}

相关文章:

Leetcode(经典题)day1

删除有序数组中的重复项|| 80. 删除有序数组中的重复项 II - 力扣&#xff08;LeetCode&#xff09; 和之前的删除有序数组中的重复项|相似&#xff0c;这里是要求最多出现两次&#xff0c;所以多加一个变量来记录出现次数即可&#xff0c;整体上还是使用双指针&#xff0c;…...

k8s record 20240710 监控

不是adaptor 是opetator 案例 监控有了&#xff0c;日志搜集呢&#xff1f; 一、kubelet 的小弟 kubelet — 负责维护容器的生命周期&#xff0c;节点和集群其他部分通信 cAdvisor 集成在 Kubernetes 的 kubelet 中&#xff0c;能够自动发现和监控集群中所有的容器。dockers…...

pdf工具

iLovePDF | 为PDF爱好者提供的PDF文件在线处理工具 https://www.ilovepdf.com/zh-cn 图片 pdf 合并成一个pdf也可以拆分...

百度文心4.0 Turbo开放,领跑国内AI大模型赛道!

百度文心4.0 Turbo开放&#xff0c;领跑国内AI大模型赛道&#xff01; 前言 文心一言大模型 就在7月5日&#xff0c;在2024世界人工智能大会 (WAIC) 上&#xff0c;百度副总裁谢广军宣布文心大模型4.0 Turbo正式向企业客户全面开放&#xff01;这一举动直接引发了业界的关注。那…...

Vue3 defineProps的使用

1.什么是defineProps defineProps是Vue3中的一种新的组件数据传递方式&#xff0c;可以用于在子组件中定义接收哪些父组件的props。当父组件的props发生变化时&#xff0c;子组件也会随之响应。 2.如何使用defineProps&#xff1f; 在子组件中可以使用defineProps声明该组件…...

面向对象进阶基础练习

Java学习笔记&#xff08;新手纯小白向&#xff09; 第一章 JAVA基础概念 第二章 JAVA安装和环境配置 第三章 IntelliJ IDEA安装 第四章 运算符 第五章 运算符联系 第六章 判断与循环 第七章 判断与循环练习 第八章 循环高级综合 第九章 数组介绍及其内存图 第十章 数…...

iPhone删除所有照片的高效三部曲

苹果手机用久了&#xff0c;系统缓存包括自己使用手机留下的内存肯定会越来越多。其中&#xff0c;相册中的照片数量可能会急剧增加&#xff0c;占据大量的存储空间。当用户们想要对相册进行彻底清理&#xff0c;实现iPhone删除所有照片时&#xff0c;不妨跟随以下详细的三部曲…...

OceanBase 配置项系统变量实现及应用详解(2):系统变量的定义及使用场景

在上一篇博客&#xff0c;配置项的定义及使用方法&#xff0c;详细阐述了配置项的概念及其基本应用方式&#xff0c;这些配置项能够调控集群或租户的行为方式。然而&#xff0c;在实际使用OceanBase的过程中&#xff0c;我们有时仅希望针对当前会话调整某些行为特性&#xff0c…...

本地部署,去除动漫图像背景Anime Remove Background

目录 摘要 引言 深度学习在动漫角色中的应用 1.​U-Net 2.Mask R-CNN 3.ISNet 模型 4.MODNet 模型 5.InSPyReNet 模型 本地部署 运行效果 测验结果​ Tip&#xff1a; 摘要 动漫图像背景去除是一项在图像处理和计算机视觉领域具有重要应用的技术&#xff0c;广泛应用于…...

wireshark与tcpdump使用

wireshark 协议层过滤指令ipip.addr 1.1.1.1ip.src 1.1.1.1ip.dst 1.1.1.1tcptcp.port 80tcp.srcport 80tcp.dstport 80tcp.len > 0tcp.flags.fin 1...

【密码学】密码学中的四种攻击方式和两种攻击手段

在密码学中&#xff0c;攻击方式通常指的是密码分析者试图破解加密信息或绕过安全机制的各种策略。根据密码分析者对明文、密文以及加密算法的知识程度&#xff0c;攻击可以分为以下四种基本类型&#xff1a; 一、四种攻击的定义 &#xff08;1&#xff09;唯密文攻击(COA, C…...

网络层的角色与重要性:互联网通信的关键

本章讨论网络层及网络互连问题&#xff0c;也就是讨论多个网络通过路由器互连成为一个互连网络的各种问题。在介绍网络层提供的两种不同服务后&#xff0c;我们开始讲解本章的核心内容——网际协议&#xff08;IP&#xff09;&#xff0c;这是本书的一项重点内容。只有较深入地…...

Transformer模型:WordEmbedding实现

前言 最近在学Transformer&#xff0c;学了理论的部分之后就开始学代码的实现&#xff0c;这里是跟着b站的up主的视频记的笔记&#xff0c;视频链接&#xff1a;19、Transformer模型Encoder原理精讲及其PyTorch逐行实现_哔哩哔哩_bilibili 正文 首先导入所需要的包&#xff1a;…...

如何压缩pdf文件大小,怎么压缩pdf文件大小

在数字化时代&#xff0c;pdf文件因其稳定的格式和跨平台兼容性&#xff0c;成为了工作与学习中不可或缺的一部分。然而&#xff0c;随着pdf文件内容的丰富&#xff0c;pdf文件的体积也随之增大&#xff0c;给传输和存储带来了不少挑战。本文将深入探讨如何高效压缩pdf文件大小…...

Spring Boot集成Atomix快速入门Demo

1.什么是Atomix&#xff1f; Atomix是一个能用的Java框架&#xff0c;用来构建高可用的分布式系统。它是基于RAFT协议的实现&#xff0c;为用户提供了各种原子数据结构&#xff0c;比如map/set/integer等&#xff0c;这些数据结构都可以在整个集群中共享并保证一致性&#xff…...

Go语言map并发安全,互斥锁和读写锁谁更优?

并发编程是 Go 语言的一大特色&#xff0c;合理地使用锁对于保证数据一致性和提高程序性能至关重要。 在处理并发控制时&#xff0c;sync.Mutex&#xff08;互斥锁&#xff09;和 sync.RWMutex&#xff08;读写锁&#xff09;是两个常用的工具。理解它们各自的优劣及擅长的场景…...

Java多线程性能调优

Synchronized同步锁优化方法 1.6之前比较重量级&#xff0c;1.6后经过优化性能大大提升 使用Synchronized实现同步锁住要是两种方式&#xff1a;方法、代码块。 1.代码块 Synchronized在修饰同步代码块时&#xff0c;是由 monitorenter和monitorexit指令来实现同步的。进入mo…...

MacOS 通过Docker安装宝塔面板搭建PHP开发环境

1、docker拉取ubuntu系统 docker pull ubuntu2、运行容器 docker run -i -t -d --name bt -p 20:20 -p 21:21 -p 80:80 -p 443:443 -p 888:888 -p 8888:8888 -p 3306:3306 -p 6379:6379 --privilegedtrue -v /Users/oi/Sites:/www/wwwroot ubuntu-v 后的 /Users/oi/Sites 代表…...

Unity发布webgl之后修改StreamingAssets 内的配置文件读取到的还是之前的配置文件的解决方案

问题描述 unity发布webgl之后&#xff0c;修改在StreamingAssets 中的配置信息&#xff0c;修改之后读取的还是之前的配置信息 读取配置文件的代码IEnumerator IE_WebGL_LoadWebSocketServerCopnfig(){var uri new System.Uri(Path.Combine(Application.streamingAssetsPath…...

离线语音识别芯片在智能生活中的应用

离线语音识别芯片&#xff0c;这一技术正逐渐渗透到我们日常生活的每一个角落&#xff0c;为众多产品带来前所未有的智能体验。它能够应用到多种产品中&#xff0c;‌包括但不限于&#xff1a;‌ 1、智能音箱&#xff1a;‌语音识别芯片作为智能音箱的核心&#xff0c;‌使用户…...

替换:show-overflow-tooltip=“true“ ,使用插槽tooltip,达到内容可复制

原生的show-overflow-tooltip“true” 不能满足条件&#xff0c;使用插槽自定义编辑&#xff1b; 旧code <el-table-column prop"reason" label"原因" align"center" :show-overflow-tooltip"true" /> <el-table-column pro…...

219.贪心算法:柠檬水找零(力扣)

代码解决 class Solution { public:bool lemonadeChange(vector<int>& bills) {int num50, num100; // 初始化5美元和10美元的计数器for(int i0; i < bills.size(); i) // 遍历所有账单{if(bills[i]5) // 如果账单是5美元{num5; // 增加5美元的计数continue; // …...

通过 Azure OpenAI 服务使用 GPT-35-Turbo and GPT-4(win版)

官方文档 Azure OpenAI 是微软提供的一项云服务&#xff0c;旨在将 OpenAI 的先进人工智能模型与 Azure 的基础设施和服务相结合。通过 Azure OpenAI&#xff0c;开发者和企业可以访问 OpenAI 的各种模型&#xff0c;如 GPT-3、Codex 和 DALL-E 等&#xff0c;并将其集成到自己…...

MySQL 面试真题(带答案)

MySQL 场景面试题 目录 场景1&#xff1a;用户注册和登录系统 1.1 数据库设计1.2 用户注册1.3 用户登录 场景2&#xff1a;订单管理系统 2.1 数据库设计2.2 创建订单2.3 查询订单 场景3&#xff1a;博客系统 3.1 数据库设计3.2 发布文章3.3 评论功能 场景1&#xff1a;用户…...

《A++ 敏捷开发》- 10 二八原则

团队成员协作&#xff0c;利用项目数据&#xff0c;分析根本原因&#xff0c;制定纠正措施&#xff0c;并立马尝试&#xff0c;判断是否有效&#xff0c;是改善的“基本功”。10-12章会探索里面的注意事项&#xff0c;13章会看两家公司的实施情况和常见问题。 如果已经获得高层…...

Spring Boot 框架知识汇总

1、什么是SpringBoot&#xff1f; 通过Spring Boot&#xff0c;可以轻松地创建独立的&#xff0c;基于生产级别的Spring的应用程序&#xff0c;您可以“运行"它们。大多数Spring Boot应用程序需要最少的Spring配置&#xff0c;集成了大量常用的第三方库配置&#xff0c;使…...

国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)

windows系统也适用&#xff0c;该插件可同时支持windows和国产系统 在实际项目开发中&#xff0c;以下场景可能会用到Word局部编辑功能&#xff1a; 合同审批公文流转策划设计报告汇签单招投标&#xff08;标书文件&#xff09;其他&#xff0c;有模板且需要不同人员协作编辑…...

Go:基本变量与数据类型

目录 前言 前期准备 Hello World! 一、基本变量 1.1 声明变量 1.2 初始化变量 1.3 变量声明到初始化的过程 1.4 变量值交换 1.5 匿名变量 1.6 变量的作用域 二、数据类型 1.1 整型 1.2 浮点型 1.3 字符串 1.4 布尔类型 1.5 数据类型判断 1.6 数据类型转换 1.…...

计算器原生js

目录 1.HTML 2.CSS 2.JS 4.资源 5.运行截图 6.下载连接 7.注意事项 1.HTML <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-s…...

怎样将aac转换mp3格式?推荐四个aac转MP3的方法

怎样将aac转换mp3格式&#xff1f;当需要将aac格式音频转换为MP3格式时&#xff0c;有几种方法可以轻松实现这一目标。MP3是一种广泛支持的音频格式&#xff0c;几乎所有设备和平台都能播放MP3文件&#xff0c;包括各种音乐播放器、手机、平板电脑和汽车音响系统。而且它也提供…...