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

代码随想录二刷复习 day1 704二分查找 27 移除元素 977 有序数组的平方

代码如下 

func search(nums []int, target int) int {

           left := 0 

           right := len(nums)-1

           for left <= right {

               middle := (left+right)/2

               if target < nums[middle] {  //因为上面的判断条件是left <= right,所以左右两个边界的值最后都能取到,而此时如果取 right = middle ,那么就会造成再次取到nums[middle]这个值,但是target < nums[middle]这个已经判断过了,所以要取   right = middle-1

                     right = middle-1

               }else if target > nums[middle]{

                    left = middle+1

               }else {

                   return middle

       

         } 

           return -1 

}

左闭右开区间 

func search(nums []int, target int) int {

           left := 0 

           right := len(nums)

           for left < right {

               middle := (left+right)/2

               if target < nums[middle] { //因为是左闭右开的区间所以是取不到右边界的值的,所以在初始右边界为 len(nums) 

                     right = middle

               }else if target > nums[middle]{

                    left = middle+1

               }else {

                   return middle

               }

           } 

           return -1 

}

               }

        小结 : left <= right 和 left < right 的区别 。举例 ,middle  = (left+right)/2 

如果是left <= right ,那么左和右可以取到4,4这样的区间,此时middle也为4,即middle 等于右边界 。如果是 left < right ,那么就取不到4,4这样的区间,只能取到4,5这个区间,此时middle值也为4.此时就取不到右边界  

27 移除元素 

代码如下 

func removeElement(nums []int, val int) int {

         slow := 0 

         for  fast := 0 ; fast < len(nums) ; fast++ { //遍历双指针,快指针负责遍历整个数组,慢指针负责收集删除元素后的数组元素 ,原则是如果与删除元素不相同的元素,放入慢指针指向的数组,慢指针向后移一位 

             if nums[fast] != val {

                 nums[slow] = nums[fast]

                 slow++

             }

         }

         return slow 

}

第一遍写的时候还想了一段时间,第二遍刷直接就写出来了。感觉自己的算法能力确实进步了一点。

977 有序数组的平方 

代码如下

思路: 定义一个结果数组,开始遍历原数组,因为原数组是非递减,所以平方后的最大值只会在两边产生,此时从左右两边依次遍历原数组,将左右两边的数的平方进行比较,并将平方和大的数放入新的数组中 

func sortedSquares(nums []int) []int {

             res := make([]int,len(nums))

             k := len(nums)-1

             left := 0 

             right := len(nums)-1 

             for left <= right {

                 if nums[left]*nums[left] < nums[right]*nums[right] {

                           res[k] = nums[right]*nums[right] 

                           

                           right-- 

                 }else {

                     res[k] = nums[left]*nums[left]

                    

                     left++

                 }

                 k--

             }

             return res 

}

相关文章:

代码随想录二刷复习 day1 704二分查找 27 移除元素 977 有序数组的平方

代码如下 func search(nums []int, target int) int { left : 0 right : len(nums)-1 for left < right { middle : (leftright)/2 if target < nums[middle] { //因为上面的判断条件是left < right&#xff0c;所以左右两个边界的值最后都能取到&#xff0c;而此…...

第16章 指令级并行与超标量处理器

处理器体系结构的超标量实现是指常见指令--整数与浮点算术、加载存储和条件分支--可以同时启动&#xff0c;但独立执行。 16.1 概述 超标量方法的本质是能在不同的流水线中独立地并发地执行指令。 在传统的标量组织结构中&#xff0c;其并行性是通过允许许多指令在同一时间处…...

JavaWeb ( 三 ) Web Server 服务器

1.5.Web Server服务器 Web Server 服务器是一种安装在服务器主机上的应用程序, 用于处理客户端(Web浏览器)的请求&#xff0c;并返回响应内容。服务器使用HTTP(超文本传输协议)与客户机浏览器进行信息交流。 简单说就是将http协议的信息翻译成对应开发语言可以处理的对象信息。…...

2.6 浮点运算方法和浮点运算器

学习目标&#xff1a; 以下是一些具体的学习目标&#xff1a; 理解浮点数的基本概念和表示方法&#xff0c;包括符号位、指数和尾数。学习浮点数的运算规则和舍入规则&#xff0c;包括加、减、乘、除、开方等。了解浮点数的常见问题和误差&#xff0c;例如舍入误差、溢出、下…...

第一次找实习, 什么项目可以给自己加分(笔记)

什么样的项目能简历加分、对找工作有帮助 基本特征&#xff1a; 一个特征是“硬核基础软件”&#xff0c;另一个为很实用的APP。 硬核基础软件 独立实现一个操作系统的kerne内核&#xff08;操作系统的内部引擎&#xff09; 北美计算机名校会让学生用一个学期的时间实现一个…...

FPGA/Verilog HDL/AC620零基础入门学习——8*8同步FIFO实验

实验要求 该项目主要实现一个深度为8、位宽为8bit的同步FIFO存储单元。模块功能应包括读控制、写控制、同时读写控制、FIFO满状态、FIFO空状态等逻辑部分。 该项目由一个功能模块和一个testbench组成。其中功能模块的端口信号如下表所示。 提示&#xff1a; &#xff08;1&a…...

shell脚本

shell函数 函数分类&#xff1a; 系统函数 自定义函数 常用系统函数&#xff1a; basename 从指定路径中获取文件名 dirname 从指定路径中获取目录名&#xff0c;去掉文件名 自定义函数 # 函数的定义 函数名 () { 命令 # 使用$n获取函数的参数 [return 返回…...

不部署服务端调用接口,前端接口神器json-server

简介 json-server 是一款小巧的接口模拟工具&#xff0c;一分钟内就能搭建一套 Restful 风格的 API&#xff0c;尤其适合前端接口测试使用。 只需指定一个 json 文件作为 api 的数据源即可&#xff0c;使用起来非常方便&#xff0c;30秒入门&#xff0c;基本上有手就行。 进阶…...

国产化:复旦微JFM7K325T +华为海思 HI3531DV200 的综合视频处理平台

板卡概述 TES714 是自主研制的一款 5 路 HD-SDI 视频采集图像处理平台&#xff0c;该平台采用上海复旦微的高性能 Kintex 系列 FPGA 加上华为海 思的高性能视频处理器 HI3531DV200 来实现。 华为海思的 HI3531DV200 是一款集成了 ARM A53 四核处理 器性能强大的神经网络引擎…...

Ceph入门到精通- stderr raise RuntimeError(‘Unable to create a new OSD id‘)

/bin/podman: stderr raise RuntimeError(Unable to create a new OSD id) podman ps |grep osd.0 podman stop osd.0 容器id 重新添加osd.0 集群目录 cd /var/lib/ceph/e8cde810-e4b8-11ed-9ba8-98039b976596/1109 ls1110 rm -rf osd.01111 ceph orch daemon add osd…...

AWSFireLens轻松实现容器日志处理

applog应用程序和fluent-bit共享磁盘&#xff0c;日志内容是json格式数据&#xff0c;输出到S3也是JSON格式 applog应用部分在applog目录&#xff1a; Dockerfile文件内容 FROM alpine RUN mkdir -p /data/logs/ COPY testlog.sh /bin/ RUN chmod 777 /bin/testlog.sh ENTRYP…...

Java程序设计入门教程--案例:自由落体

程序模拟物体从10000米高空掉落后的反弹行为。 球体每落地一次&#xff0c;就会反弹至原高度的一半。按用户输入的弹跳次数&#xff0c;计算球体每次弹跳的高度。 实现过程&#xff1a; 1. 新建项目&#xff1b; 2. 接收 用户输入的弹跳次数&#xff1a; &#xff08;1&#…...

Qt音视频开发44-本地摄像头推流(支持分辨率/帧率等设置/实时性极高)

一、前言 本地摄像头推流和本地桌面推流类似&#xff0c;无非就是采集的设备源头换成了本地摄像头设备而不是桌面&#xff0c;其他代码完全一样。采集本地摄像头实时视频要注意的是如果设置分辨率和帧率&#xff0c;一定要是设备本身就支持的&#xff0c;如果不支持那就歇菜&a…...

SpringCloud学习(七)——统一网关Gateway

文章目录 1. 网关介绍2. 网关搭建2.1 引入依赖2.2 创建启动类2.3 编写配置2.4 测试 3. 路由断言工厂4. 路由过滤器4.1 过滤器配置4.2 全局过滤器4.3 过滤器执行顺序 5. 跨域问题处理 1. 网关介绍 到现在&#xff0c;我们可以使用Nacos对不同的微服务进行注册并管理配置文件&am…...

《花雕学AI》31:ChatGPT--用关键词/咒语/提示词Prompt激发AI绘画的无限创意!

你有没有想过用AI来画画&#xff1f;ChatGPT是一款基于GPT-3的聊天模式的AI绘画工具&#xff0c;它可以根据你输入的关键词/咒语/提示词Prompt来生成不同风格和主题的画作。Prompt是一些简短的文字&#xff0c;可以用来指导ChatGPT的创作过程。在这篇文章中&#xff0c;我将展示…...

计算机组成原理9控制单元的结构

9.1操作命令的分析 取值周期间址周期执行周期中断周期 取指周期数据流 PC存放下条指令的地址给MAR访问存储器相应单元&#xff0c;将数据取出来送给MDR寄存器&#xff0c;MDR取出来的内容送给IR指令寄存器&#xff0c;然后对指令进行译码&#xff0c;把指令的操作码部分取出…...

MySQL数据备份和恢复

MySQL数据备份和恢复 数据备份 mysqldump是MySQL数据库备份工具&#xff0c;可以备份MySQL数据库中的数据和结构&#xff0c;生成.sql文件&#xff0c;方便数据的迁移和恢复。 使用mysqldump工具前一定要配置环境变量 打开开始菜单&#xff0c;搜索“环境变量”。点击“编辑…...

数据结构与算法之链表: Leetcode 237. 删除链表中的节点 (Typescript版)

删除链表中的节点 https://leetcode.cn/problems/delete-node-in-a-linked-list/ 描述 有一个单链表的 head&#xff0c;我们想删除它其中的一个节点 node。 给你一个需要删除的节点 node 。你将 无法访问 第一个节点 head。 链表的所有值都是 唯一的&#xff0c;并且保证给…...

继承的相关介绍---C++

一、概念及定义 概念&#xff1a; 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。继承呈现了面向对象程序设计的层次结…...

Java多线程深入探讨

1. 线程与进程2. 创建和管理线程2.1. 继承Thread类2.2. 实现Runnable接口2.3 利用Callable、FutureTask接口实现。2.4 Thread的常用方法 3. 线程同步3.1. synchronized关键字3.1.1同步代码块&#xff1a;3.1.2 同步方法&#xff1a; 3.2. Lock接口 4. 线程间通信5. 线程池5.1 使…...

SpringCloud全面学习笔记之进阶篇

目录 前言微服务保护初识Sentinel雪崩问题及解决方案雪崩问题超时处理仓壁模式熔断降级流量控制总结 服务保护技术对比Sentinel介绍和安装微服务整合Sentinel 流量控制快速入门流控模式关联模式链路模式小结 流控效果warm up排队等待 热点参数限流全局参数限流热点参数限流案例…...

英语中主语从句的概念及其用法,例句(不断更新)

主语从句的原理 主语从句是一种充当整个句子主语的从句&#xff0c;主语从句构成的句子&#xff0c;是要以引导词开头的。它可以用名词性从属连词、关系代词或关系副词引导。主语从句通常位于谓语动词之前&#xff0c;用于表示动作、状态或事件的主体。 以下是一些常用的引导主…...

数组的子数组(亚阵列)、子序列,字符串的子串、子序列

数组 子数组 一个或连续多个数组中的元素组成一个子数组 子数组最少包含一个元素 数组 {1, 2, 3} 的子数组是 {1}, {1, 2}, {1, 2, 3}, {2}, {2, 3}&#xff0c; 和 {3}. 子序列 子序列就是在原来序列中找出一部分组成的序列 子序列不一定连续 相对位置还是不变 但是&#xff…...

MySQL 知识:迁移数据目录到其他路径

一、系统环境 操作系统&#xff1a;Centos 7 已安装环境&#xff1a;MySQL 8.0.26 二、开始操作 2.1 关闭SELinux 为了提高 Linux 系统的安全性&#xff0c;在 Linux 上通常会使用 SELinux 或 AppArmor 实现强制访问控制&#xff08;Mandatory Access Control MAC&#xff…...

Go | 一分钟掌握Go | 8 - 并发

作者&#xff1a;Mars酱 声明&#xff1a;本文章由Mars酱编写&#xff0c;部分内容来源于网络&#xff0c;如有疑问请联系本人。 转载&#xff1a;欢迎转载&#xff0c;转载前先请联系我&#xff01; 前言 当今编程界&#xff0c;一个好的编译型语言如果不支持并发&#xff0c…...

【滤波】多元高斯

本文主要翻译自rlabbe/Kalman-and-Bayesian-Filters-in-Python的第5章节05-Multivariate-Gaussians&#xff08;多元高斯&#xff09;。 %matplotlib inline#format the book import book_format book_format.set_style()简介 上一篇文章中的技术非常强大&#xff0c;但它们只…...

单源最短路问题

全部代码 全部代码在github acwing 上 正在更新 https://github.com/stolendance/acwing 图论 欢迎大家star与fork 单源最短路问题 先用spfa算法 不行再换其他的 spfa-超级万能 说不定比dijsktra还快 dis[] 代表第k到某一点的最短距离 queue 代表刚被更新的点 它有可能更…...

Security方法注解权限控制过程及自定义权限表达式

文章目录 使用内置的权限表达式PreAuthorizePermissionEvaluator 自定义权限表达式SysMethodSecurityExpressionHandler源码流程 SysMethodSecurityExpressionRoot 使用内置的权限表达式 PreAuthorize 这个用来判断超级管理员的话&#xff0c;还得在表达式上加上或 Permissi…...

vue 省市县三级联动

1、 <template><div>所在省<el-select popper-class"eloption" :popper-append-to-body"true"change"getShiList(obj.province)" v-model"obj.province" placeholder"请选择所在省" clearableclear"re…...

ChatGPT实现编程语言转换

编程语言转换 对于程序员来说&#xff0c;往往有一类工作&#xff0c;是需要将一部分业务逻辑实现从服务端转移到客户端&#xff0c;或者从客户端转移到服务端。这类工作&#xff0c;通常需要将一种编程语言的代码转换成另一种编程语言的代码&#xff0c;这就需要承担这项工作…...

wordpress微信模块插件/营销型网站建设应该考虑哪些因素

今天是刘小爱自学Java的第62天。感谢你的观看&#xff0c;谢谢你。话不多说&#xff0c;继续数据库的学习&#xff1a;使用了数据库可视化工具Navicat&#xff0c;感觉真香。比在DOS窗口中操作方便多了&#xff0c;那个黑乎乎的窗口真心不习惯&#xff0c;并且也没有提示。今天…...

网站标题优化排名/百度网站官网入口网址

最前面的话&#xff1a;Smobiler是一个在VS环境中使用.Net语言来开发APP的开发平台&#xff0c;也许比Xamarin更方便一、目标样式我们要实现上图中的效果&#xff0c;需要如下的操作&#xff1a;1.从工具栏上的”Smobiler Components”拖动一个一个TableView控件到窗体界面上2.…...

沧州做网站的/推广普通话图片

ansible的copy模块批量下发文件copy模块的参数&#xff0c;ansible 主机组 -m copy -a src: 指定源文件或目录dest: 指定目标服务器的文件或目录backup: 是否要备份owner: 拷贝到目标服务器后&#xff0c;文件或目录的所属用户group: 拷贝到目标服务器后&#xff0c;文件或目录…...

起重机网站怎么做/邯郸网站优化公司

目前&#xff0c;我国已成为全球最大的驾驶培训市场&#xff0c;根据前瞻产业研究院发布相关报告预测&#xff0c;2017年我国机动车驾驶人数量将达到3.95亿人。2017年较上年新增驾驶人数量约3100万人。以人均学车价格5000元来计算&#xff0c;至2017年&#xff0c;我国机动车驾…...

wordpress微信登入/建立网站流程

原文地址&#xff1a;https://blog.csdn.net/meixi_android/article/details/84335381 常用的 iOS 风格 dialog 和 meterial design 风格的 dialog&#xff1a;https://github.com/glassLake/DialogUtils 提高 Android 应用的颜值&#xff0c;酷炫 UI 组件汇总&#xff1a;htt…...

厦门淘宝运营培训/app软件下载站seo教程

3784: 树上的路径 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 462 Solved: 153[Submit][Status][Discuss]Description 给定一个N个结点的树&#xff0c;结点用正整数1..N编号。每条边有一个正整数权值。用d(a,b&#xff09;表示从结点a到结点b路边上经过边的权值。其中…...