LeetCode75-06:移动零

news2025/1/10 23:38:48

移动零

请添加图片描述

初版(bug)

func moveZeroes(nums []int)  {
    if len(nums) == 1{
        return
    }
    // 设置两个指针fp1,fp2分别指向第一个元素和第二个元素,
    // 两种情况
    // 假如指针fp1指向元素为零
    // 1) *fp2!=0,则交换。
    // 2) *fp2=0,则fp2后移,直至*fp2!=0,与fp1交换

    // 假如指针fp1指向元素为不为零:
    // 1) *fp2=0,则fp1与fp2后移,变成第一种情况;
    // 2) *fp2!=0,fp1与fp2后移...
    temp := 0
    fp1, fp2 := 0, 1
    for _, _ = range nums{
        if fp2 == len(nums){
            break
        }
        if nums[fp1] == 0{
            if nums[fp2] != 0{
                temp = nums[fp1]
                nums[fp1] = nums[fp2]
                nums[fp2] = temp
                fp1++
                fp2++
                continue
            }else{
                fp2++
                temp = nums[fp1]
                nums[fp1] = nums[fp2]
                nums[fp2] = temp
                fp1++
             continue
            }  
        }else{
                fp1++
                fp2++
                continue
            }
        }
}    

可读性

func moveZeroes(nums []int) {
    if len(nums) == 1 {
        return
    }
    fp1, fp2 := 0, 1
    for fp2 < len(nums) {
        if nums[fp1] != 0 {
            fp1++
            fp2++
            continue
        }
        if nums[fp2] != 0 {
            nums[fp1], nums[fp2] = nums[fp2], nums[fp1]
            fp1++
        }
        fp2++
    }
}

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【刷题笔记9.24】LeetCode:对称二叉树

LeetCode&#xff1a;对称二叉树 一、题目描述&#xff1a; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 二、题目分析 题目&#xff1a;对称二叉树 1、p 指针和 q 指针一开始都指向这棵树的根 2、随后 p 右移时&#xff0c;q 左移&#xff0c;p 左移时&a…

从平均数到排名算法

平均数用更少的数字&#xff0c;概括一组数字。属于概述统计量、集中趋势测度、位置测度。中位数是第二常见的概述统计量。许多情况下比均值更合适。算术平均数是3中毕达哥拉斯平均数之一&#xff0c;另外两种毕达哥拉斯平均数是几何平均数和调和平均数。 算术平均 A M 1 n ∑…

Netty简介及简单客户端/服务端示例代码

什么是Netty&#xff1f; Netty是一个NIO客户机-服务器框架&#xff0c;它支持快速而容易地开发网络应用程序&#xff0c;如协议服务器和客户机。它大大简化和简化了网络编程&#xff0c;如TCP和UDP套接字服务器。 “快速简单”并不意味着生成的应用程序将遭受可维护性或性能问…

pycharm 让控制台里的链接可以点击

前言 如果细心就会发现pychram控制台里一些链接是可以点击的,另外一些不行,那么如果让输出的链接可以点击如何做呢? 解决 输出的i链接会在控制台里可以点击,并且点击会在本地直接打开 如果打印的是网址则可以直接点击 print(file:///{}.format(i))print(https://www.baid…

[架构之路-220]:与机器打交道VS与人打交道,计算机系统VS人体系统,计算机网络VS人类社会:架构、通信、语言、网络、智能、情感、生命

目录 前言&#xff1a; 一、计算机系统架构 VS 人体系统架构 1.1 相似之处 1.2 不同之处 1.3 人的心理与计算机软件 1.4 计算机系统层次 VS 人的层次模型 二、计算机通信 VS 人与人交流 2.1 计算机通信communication 2.2 人与人的交流communication 2.3 智商 VS 情商…

mybatis拦截器执行原理

title: “mybatis拦截器执行过程” createTime: 2021-12-08T12:19:5708:00 updateTime: 2021-12-08T12:19:5708:00 draft: false author: “ggball” tags: [“mybatis”] categories: [“java”] description: “mybatis拦截器执行过程” m[toc] mybatis的拦截器本人平时也很…

【数据结构】链表--单链表

目录 一 概念及结构 二 单链表的实现 1 包含接口(SList.h) 2 打印和创造节点&#xff08;扩容&#xff09;&#xff08;SList.c) 3 尾插&#xff08;SList.c) 4 头插&#xff08;SList.c) 5 尾删&#xff08;SList.c) 6 头删&#xff08;SList.c) 7 在pos前插入x&…

大数据从入门到精通(超详细版)之Hive的案例实战,ETL数据清洗!!!

前言 嗨&#xff0c;各位小伙伴&#xff0c;恭喜大家学习到这里&#xff0c;不知道关于大数据前面的知识遗忘程度怎么样了&#xff0c;又或者是对大数据后面的知识是否感兴趣&#xff0c;本文是《大数据从入门到精通&#xff08;超详细版&#xff09;》的一部分&#xff0c;小…

安全生产知识竞赛活动小程序界面分享

安全生产知识竞赛活动小程序界面分享

SCR截面速度、氨氮比等标准及相对标准偏差计算

SCR截面速度、氨氮比等标准及相对标准偏差计算 # -*- coding: utf-8 -*- """ 联系QQ:3123575367&#xff0c;专业SCR脱硝仿真。 Created on Wed Sep 20 20:40:30 2023 该程序用来处理fluent通过xyplot导出的数据&#xff0c;可计算标准偏差SD、相对标准偏差RSD…

linux 安装 wordpress

文章目录 linux 安装 wordpress1. wordpress 简介2. wordpress功能和特点3. 部署要求4. 环境搭建4.1 部署 nginx4.1.1 新增配置文件 4.2 部署 PHP74.2.1 查看当前版本4.2.2 YUM 安装 PHP74.2.3 查看 PHP 版本4.2.4 启动PHP-FPM4.2.5 修改配置文件4.2.6 重启服务 4.3 部署 mysql…

Spring事务2+银行转账拓展

前言 Transactional()内可以写的属性 一、Dao层的更新 public interface LogDao {//#{}符号取的是接口方法中的形参 now()方法直接调用的内置函数Insert("insert into log (info,createDate) values(#{info},now())")void log(String info); }二、LogService层…

【Element】通知 Notification

ElementUI 弹出通知 created() {const h this.$createElementconst that thisthis.$notify({onClose: function () {that.do()},type: warning,duration: 5000, // 5秒后隐藏offset: 0, // 距离顶部dangerouslyUseHTMLString: false, showClose: false,customClass: notify-…

索引(含B树、B+树)

1、索引&#xff08;index&#xff09; 索引是在数据库表的字段上添加的&#xff0c;是为了提高查询效率存在的一种机制。 一张表的一个字段可以添加一个索引&#xff0c;当然&#xff0c;多个字段联合起来也可以添加索引。 索引相当于一本书的目录&#xff0c;是为了缩小扫描…

Nginx 防止跨站脚本 Cross-Site Scripting (XSS)

1、修改 nginx 配置 在 nginx.conf 配置文件中&#xff0c;增加如下配置内容&#xff1a; add_header X-XSS-Protection "1; modeblock";X-XSS-Protection 的字段有三个可选配置值&#xff0c;说明如下&#xff1a; 0&#xff1a; 表示关闭浏览器的XSS防护机制&…

计算机专业毕业设计项目推荐08-英语在线点读平台(SpringBoot+Vue+MongoDB)

英语在线点读平台&#xff08;SpringBootVueMongoDB&#xff09; **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设…

华为认证HCIP知识点

文章目录 前言考试内容数据通信领域各场景通用核心知识OSPFIS-ISBGPIGMPICMP 数据通信领域路由交换高阶知识大数据技术Hadoop 总结 前言 本博客仅做学习笔记&#xff0c;如有侵权&#xff0c;联系后即刻更改 科普&#xff1a; 考试内容 参考网址 HCIP认证主要定位于中小型网…

Spring面试题7:面试官:Spring是如何进行异常处理的呢?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring是如何进行异常处理的呢? Spring通过异常处理机制来处理应用程序中的异常。它提供了多种方式来处理异常,包括以下几种: 声明式事务管理:…

实战案例:场景测试之ATM机取款业务测试

本期&#xff0c;我们通过经典案例——ATM机的操作&#xff0c;来为大家详细说说如何撰写对应的测试用例。 案例 在我们日常生活中&#xff0c;ATM机是个大家都非常熟悉的事物。银行为例提高工作效率&#xff0c;方便客户随时办理基础的储蓄和提现业务&#xff0c;于是&#…

Qt5开发及实例V2.0-第二十章-Qt.QML动画特效

Qt5开发及实例V2.0-第二十章-Qt.QML动画特效 第20章 QML动画特效20.1 QML动画元素20.1.1 PropertyAnimation元素20.1.2 其他动画元素20.1.3 Animator元素 20.2 动画流UI界面20.2.1 状态和切换 20.3 图像特效20.3.1 3D旋转20.3.2 色彩处理 20.4 Qt 5.5&#xff08;Qt Quick Extr…