代码随想录day1

704.二分查找:

1.左闭右闭

int search(vector<int>& nums, int target) {
        int right = nums.size() - 1;
        int left = 0;
        while(left < right){
            int middle = left + ((right - left) >> 1);
            if(nums.at(middle) == target){
                return middle;
            }else if(nums[middle] > target){
                right = middle - 1;
            }else{
                left = middle + 1;
            }
        }
        return -1;
        
    }

2.左闭右开

int search(vector<int>& nums, int target) {
        int right = nums.size();
        int left = 0;
        while(left < right){
            int middle = left + ((right - left) >> 1);
            if(nums.at(middle) == target){
                return middle;
            }else if(nums[middle] > target){
                right = middle;
            }else{
                left = middle + 1;
            }
        }
        return -1;
        
    }

遇到问题:

如果middle等变量的类型采用auto,跑测试用例nums=[5] target=-5时会报错index越界,后采用int类型。

27.移除元素

int removeElement(vector<int>& nums, int val) {
        int length = nums.size();
        int count = 0;
        
        for(int i = 0; i < length; i++){
            if(nums[i] == val){
                continue;
            }else{
                nums[count++] = nums[i];
            }
        }
        return count;
    }

977.有序数组的平方

注意:考虑非单调递减数组前后的平方值是最大的,中间的是最小的。遍历时从两头往中间走,从后往前存计算结果,就能达到上述要求

vector<int> sortedSquares(vector<int>& nums) {
        vector<int> result(nums.size());
        int left = 0;
        int right = nums.size() - 1;
        int index = nums.size() - 1;
        while(left <= right){
            int square_left = nums[left] * nums[left];
            int square_right = nums[right] * nums[right];
            if(square_left > square_right){
                result[index--] = square_left;
                left++;
            }else{
                result[index--] = square_right;
                right--;
            }
        }
        return result;
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/957800.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker核心命令与Yocto项目的高效应用

随着软件开发逐渐向分布式和容器化方向演进&#xff0c;Docker 已成为主流的容器化技术之一。它通过标准化的环境配置、资源隔离和高效的部署流程&#xff0c;大幅提高了开发和构建效率。Yocto 项目作为嵌入式 Linux 系统构建工具&#xff0c;与 Docker 的结合进一步增强了开发…

08-Elasticsearch

黑马商城作为一个电商项目&#xff0c;商品的搜索肯定是访问频率最高的页面之一。目前搜索功能是基于数据库的模糊搜索来实现的&#xff0c;存在很多问题。 首先&#xff0c;查询效率较低。 由于数据库模糊查询不走索引&#xff0c;在数据量较大的时候&#xff0c;查询性能很…

MyBatis最佳实践:提升数据库交互效率的秘密武器

第一章&#xff1a;框架的概述&#xff1a; MyBatis 框架的概述&#xff1a; MyBatis 是一个优秀的基于 Java 的持久框架&#xff0c;内部对 JDBC 做了封装&#xff0c;使开发者只需要关注 SQL 语句&#xff0c;而不关注 JDBC 的代码&#xff0c;使开发变得更加的简单MyBatis 通…

Scratch全攻略:从入门到实践的编程之旅

目录 一、Scratch 基础入门1.1 Scratch 是什么1.2 安装与界面熟悉1.2.1 在线版1.2.2 离线版1.2.2.1 舞台区1.2.2.2 角色区1.2.2.3 脚本区1.2.2.4 背景区1.2.2.5 声音区 二、核心编程要素2.1 角色与舞台2.2 积木块详解2.2.1 运动类积木2.2.2 外观类积木2.2.3 声音类积木2.2.4 事…

STM32之CubeMX新建工程操作(十八)

STM32F407 系列文章 - STM32CubeMX&#xff08;十八&#xff09; 目录 前言 一、STM32CubeMX 二、新建工程 ​编辑 1.创建工程 2.选择芯片型号 3.Pinout引脚分配 1.SYS配置 2.RCC配置 3.定时器配置 4.GPIO引脚配置 5.中断配置 6.通讯接口配置 7.插件Middleware配…

Spark任务提交流程

当包含在application master中的spark-driver启动后&#xff0c;会与资源调度平台交互获取其他执行器资源&#xff0c;并通过反向注册通知对应的node节点启动执行容器。此外&#xff0c;还会根据程序的执行规划生成两个非常重要的东西&#xff0c;一个是根据spark任务执行计划生…

GenTact Toolbox:为Franka Research 3机械臂定制触觉 “皮肤” 的创新方案

前言&#xff1a; 在机器人的发展历程中&#xff0c;为其配备全身触觉皮肤一直是一项充满挑战的任务。传统的触觉皮肤设计往往采用模块化、“一刀切” 的方式&#xff0c;虽然具备一定通用性&#xff0c;但无法充分考虑机器人独特的形状以及其操作环境的特殊需求。在复杂的现实…

设计模式Python版 单例模式

文章目录 前言一、单例模式二、单例模式实现方式三、单例模式示例四、单例模式在Django框架的应用 前言 GOF设计模式分三大类&#xff1a; 创建型模式&#xff1a;关注对象的创建过程&#xff0c;包括单例模式、简单工厂模式、工厂方法模式、抽象工厂模式、原型模式和建造者模…

JVM面试题解,垃圾回收之“对象存活判断”剖析

一、JVM怎么判断一个类/对象是不是垃圾&#xff1f; 先来说如何判断一个对象是不是垃圾 最常用的就是引用计数法和可达性分析 引用计数法 引用计数法为每个对象维护一个计数器来跟踪有多少个引用指向该对象。每当创建一个新的引用指向某个对象时&#xff0c;计数器加1&…

【Django开发】django美多商城项目完整开发4.0第14篇:Docker使用,1. 在Ubuntu中安装Docker【附

本教程的知识点为&#xff1a; 项目准备 项目准备 配置 1. 修改settings/dev.py 文件中的路径信息 2. INSTALLED_APPS 3. 数据库 用户部分 图片 1. 后端接口设计&#xff1a; 视图原型 2. 具体视图实现 用户部分 使用Celery完成发送 判断帐号是否存在 1. 判断用户名是否存在 后…

14-5C++的deque容器

(一&#xff09;deque的基础知识 1.deque是“double-ended queue"的缩写和vector-样都是STL的容器 2.deque是双端数组而vector是单端的 3.deque在接口上和vector非常相似&#xff0c;在许多操作的地方可以直接替换 4.deque可以随机存取元素(支持索引值直接存取&#xf…

鸿蒙仓颉环境配置(仓颉SDK下载,仓颉VsCode开发环境配置,仓颉DevEco开发环境配置)

目录 ​1&#xff09;仓颉的SDK下载 1--进入仓颉的官网 2--点击图片中的下载按钮 3--在新跳转的页面点击即刻下载 4--下载 5--找到你们自己下载好的地方 6--解压软件 2&#xff09;仓颉编程环境配置 1--找到自己的根目录 2--进入命令行窗口 3--输入 envsetup.bat 4--验证是否安…

grafana新增email告警

选择一个面板 比如cpu 新增一个临界点表达式 input选A 就是A的值达到某个临界点 触发告警 我这边IS ABOVE0.15就是cpu大于0.15%就触发报警&#xff0c;这个值怎么填看指标的值显示 这里要设置一下报警条件 这边随便配置下 配置标签和通知&#xff0c;选择你的邮件 看下告警…

springboot自动配置原理(高低版本比较)spring.factories文件的作用

SpringBootApplication public class SpringSecurityApplication {public static void main(String[] args) {SpringApplication.run(SpringSecurityApplication.class, args);}}注解SpringBootApplication Target({ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Doc…

Spring源码03 - bean注入和生命周期

bean注入和生命周期&#xff08;面试&#xff09; 文章目录 bean注入和生命周期&#xff08;面试&#xff09;一&#xff1a;getBean的主体思路1&#xff1a;初步思路2&#xff1a;SpringBean的主体思路 二&#xff1a;Spring如何解决循环依赖问题1&#xff1a;三级Map&#xf…

vscode导入模块不显示类型注解

目录结构&#xff1a; utils.py&#xff1a; import random def select_Jrandom(i:int, m:int) -> int:"""随机选择一个不等于 i 的整数"""j iwhile j i:j int(random.uniform(0, m))return jdef clip_alpha(alpha_j:float, H:float, L:f…

浅谈机器学习之基于RNN进行充值的油费预测

浅谈机器学习之基于RNN进行充值的油费预测 引言 随着智能交通和物联网技术的发展&#xff0c;油费预测已成为研究的热点之一。准确的油费预测不仅能帮助车主合理规划出行成本&#xff0c;还可以为油价波动提供参考依据。近年来&#xff0c;递归神经网络&#xff08;RNN&#…

There is no getter for property named ‘XXX’ in ‘XXXX‘

写了一个POST方法用于新增软件描述信息&#xff0c;报错显示在我的实体类中没有这个属性的getter方法&#xff0c;实体类如下&#xff1a; 报错没有softWare这个属性的getter方法&#xff0c;但是我的实体类中本来就没有这个属性&#xff08;笑哭...) 后面查了许多资料发现&am…

基于springboot+vue的校园二手物品交易系统的设计与实现

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

H266/VVC 变换编码中大尺寸变换块高频系数置零技术

大尺寸变换块高频系数置零 近年来视频技术有了飞速的变化&#xff0c;视频的分辨率从 1080P 过渡到 4K&#xff0c;并逐渐向发展 8K。为了适应日益增长的视频分辨率&#xff0c;新的编码技术采用了更大尺寸的变换块来提高编码效率&#xff0c;最大变换块大小变成 64x64。变换块…