力扣hot100-普通数组2

news2024/12/24 22:10:56

文章目录

    • 题目:轮转数组
      • 方法1-使用额外的数组
      • 方法2-三次反转数组
    • 除自身以外数组的乘积
      • 方法1-用到了除法
      • 方法2-前后缀乘积法

题目:轮转数组

原题链接:轮转数组
在这里插入图片描述

方法1-使用额外的数组

方法1是自己写出来的。方法2参考的别人的,方法2太👍了,不易发现这个规律

    public static void rotate(int[] nums, int k) {
        int[] temp = new int[nums.length];
        int j = 0;
        k = k % nums.length; // 数组长度大于k时,旋转次数取余---关键
        for (int i = nums.length - k; i < nums.length; i++) {
            temp[j++] = nums[i];
        }
        for (int i = 0; i < nums.length - k; i++) {
            temp[j++] = nums[i];
        }
        System.arraycopy(temp, 0, nums, 0, nums.length);
    }

方法2-三次反转数组

    private static void reverse(int[] nums, int start, int end) {
        while (start < end) {
            int temp = nums[start];
            nums[start] = nums[end];
            nums[end] = temp;
            start++;
            end--;
        }
    }

    public static void rotate1(int[] nums, int k) {
        k = k % nums.length;  
        reverse(nums, 0, nums.length - 1);
        reverse(nums, 0, k - 1);
        reverse(nums, k, nums.length - 1);
    }

除自身以外数组的乘积

原题链接:除自身以外数组的乘积
在这里插入图片描述

方法1-用到了除法

当时没看题目中不让用除法,当时一下就想到这个思路了,哈哈哈

    public static int[] productExceptSelf(int[] nums) {
        int temp = 1;
        int zero = 0;
        // 先看数组中0的个数  大于1则结果数组全为0  等于1则结果数组中0的位置为其他元素乘积
        for (int num : nums) {
            if (num != 0) {
                temp *= num;
            } else {
                zero++;
                if (zero > 1) return new int[nums.length];
            }
        }
        List<Integer> res = new ArrayList<>();
        for (int num : nums) {
            if (zero == 1) {
                //num==0 则当前结果数组该位置的结果为其他元素乘积
                res.add(num == 0 ? temp : 0);
            } else {
                res.add(temp / num);
            }
        }
        return res.stream().mapToInt(Integer::intValue).toArray();
    }

方法2-前后缀乘积法

方法2使用两次遍历分别计算数组元素左边右边的乘积,从而构建出结果数组

    public static int[] productExceptSelf1(int[] nums) {
        int n = nums.length;
        int[] res = new int[n];

        // 第一次遍历,计算左边所有元素的乘积
        res[0] = 1;
        for (int i = 1; i < n; i++) {
            res[i] = res[i - 1] * nums[i - 1];
        }
        // 第二次遍历,计算右边所有元素的乘积,并更新结果数组
        int right = 1;
        for (int i = n - 1; i >= 0; i--) {
            res[i] *= right; //res[i]是当前i左边元素全部乘积
            right *= nums[i]; //用一个变量记录当前元素右边的所有元素乘积
        }
        return res;
    }

❤觉得有用的可以留个关注ya~❤

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

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

相关文章

transformer模型学习路线_transformer训练用的模型

Transformer学习路线 完全不懂transformer&#xff0c;最近小白来入门一下&#xff0c;下面就是本菜鸟学习路线。Transformer和CNN是两个分支&#xff01;&#xff01;因此要分开学习 Transformer是一个Seq2seq模型&#xff0c;而Seq2seq模型用到了self-attention机制&#xf…

tinyshop项目部署

参考软件测试之测试用例设计&#xff08;四&#xff09;_管理后台 测试用例-CSDN博客 1、下载xampp 2、修改apache和mysql的端口分别为4431 &#xff0c;8013和3306 3、访问页面&#xff1a;输入ip:端口号&#xff0c;出现以下页面即成功 4、安装tinyshop商城 将解压的tinys…

苹果手机数据被抹除了怎么恢复?学会这招就够了

数据丢失&#xff0c;是每一个iOS用户都有可能会遇到的问题&#xff0c;尤其是因为操作不当不小心抹除了数据&#xff0c;这个问题会变得更加糟糕&#xff0c;因为 iPhone中的数据、设置、下载的软件等内容都会被清除掉。那么iphone抹掉数据后怎么恢复&#xff1f;本文提供了相…

VMware虚拟机Ubuntu网络有线线缆已拔出问题

1、问题描述 VMware虚拟机Ubuntu不能联网&#xff0c;打开设置中&#xff0c;网络显示“有线 线缆已拔出”。 2、查看虚拟网络连接 查看主机的网络连接&#xff0c;确保虚拟网络已启用。 3、启动虚拟机网络服务 打开主机的 ‘服务’&#xff08;winr&#xff0c;运行框中输入…

视频监控平台LntonCVS视频监控汇聚平台技术优势分析

安防视频管理系统LntonCVS视频智能汇聚融合平台&#xff0c;是一款功能强大的视频管理平台&#xff0c;支持多种操作系统包括Windows、Linux&#xff08;CentOS、Ubuntu&#xff09;和国产化系统。该平台能够通过多协议接入&#xff0c;并利用视频应用引擎将多种格式的视频数据…

ABAP OO面向对象编程--定义、实现和使用类

- Define, implement and use simple class&#xff08;定义、实现和使用简单类&#xff09;&#xff1a;指的是在编程中创建一个基本的类&#xff0c;实现其功能&#xff0c;并在程序中使用它。 类是对象的模板。反过来说&#xff0c;也可以说对象的类型就是它的类。类是对对象…

聊一聊领域驱动和贫血

写在前面 前段时间跟领导讨论技术债概念时不可避免地提到了代码的质量&#xff0c;而影响代码质量的因素向来都不是单一的&#xff0c;诸如项目因素、管理因素、技术选型、人员素质等等&#xff0c;因为是技术债务&#xff0c;自然就从技术角度来分析&#xff0c;单纯从技术角…

秋招Java后端开发冲刺——非关系型数据库篇(MongoDB)

MongoDB 本文介绍非关系型数据库MongoDB的基础知识和常见面试题。 &#xff08;一&#xff09;基础知识 1. 介绍&#xff1a;MongoDB是一个基于分布式文件存储的数据库&#xff0c;由C语言编写&#xff0c;旨在为WEB应用提供可扩展的高性能数据存储解决方案。 2.特点 特点…

数次同台,极越与小米的爱恨情仇

在汽车行业&#xff0c;提起小米&#xff0c;或许很多人都会记得在北京车展登台亮相的小米su7。可提到极越&#xff0c;或许更多人会为之一愣——这是个什么汽车品牌&#xff1f; 实际上&#xff0c;在今年四月的北京车展中&#xff0c;它就坐落于小米汽车W2展馆正对面。这也可…

Electron、Win11静默打印与PowerShell:技术融合与应用探索

Electron、Win11静默打印与PowerShell&#xff1a;技术融合与应用探索 在现代软件开发与办公环境中&#xff0c;技术的融合与创新不断推动着工作效率的提升和用户体验的优化。本文将深入探讨Electron框架、Windows 11&#xff08;Win11&#xff09;静默打印技术以及PowerShell…

Win11禁止右键菜单折叠的方法

背景 在使用windows11的时候&#xff0c;会发现默认情况下&#xff0c;右键菜单折叠了。以至于在使用一些软件的右键菜单时总是要点击“显示更多选项”菜单展开所有菜单&#xff0c;然后再点击。而且每次在显示菜单时先是全部展示&#xff0c;再隐藏一下&#xff0c;看着着实难…

小试牛刀-区块链代币锁仓(Web页面)

Welcome to Code Blocks blog 本篇文章主要介绍了 [区跨链代币锁仓(Web页面)] ❤博主广交技术好友&#xff0c;喜欢我的文章的可以关注一下❤ 目录 1.编写目的 2.开发环境 3.实现功能 4.代码实现 4.1 必要文件 4.1.1 ABI Json文件(LockerContractABI.json) 4.2 代码详解…

《新华日报》理论版报刊简介及投稿邮箱

《新华日报》理论版报刊简介及投稿邮箱 《新华日报》是中国共产党在抗日战争时期和解放战争初期创办的大型机关报&#xff0c;1949 年 4 月在南京复刊&#xff0c;1952 年成为中国共产党江苏省委机关报&#xff0c;现为中共江苏省委直属事业单位。 该报纸的理论版&#xff08;…

pycharm无法添加python解释器的解决方法

出现该错误的原因是先前创建过重名的解释器&#xff08;虚拟环境&#xff09;&#xff0c;在pycharm配置中没有完全删除干净。解决方法如下&#xff1a; 首先在文件->设置界面&#xff0c;找到解释器设置。 然后先按图所示点击全部显示虚拟环境&#xff1a; 接着将无法添…

Django开发实战(1)- 认识django

1.django 使用MTV模式&#xff0c;其实与MVC本质一样&#xff1a; model&#xff1a;业务对象和关系映射&#xff08;ORM&#xff09; template&#xff1a;客户端页面展示 view&#xff1a;业务逻辑&#xff0c;根据需求调用 2.开发相关 √ python √ html&…

高压开关触指接触压力测试仪 隔离开关触指压紧力测试仪

产品概述 KDGK-2016隔离开关触指压紧力测试仪&#xff0c;只要将测试钳模拟触头的传感器在每对触指接触位置张开一下&#xff0c;就能显示出触指此时的接触压力并记忆。有效解决了测量触指压力的难题。 KDGK-2016隔离开关触指压紧力测试仪也可用于隔离开关制造厂对触指压力的…

工作坊回顾 | 谢宁老师赋能一汽汽车集团开展《从市场洞察到产品规划及产品线端到端经营管理》专题工作坊

工作坊现场快报 近日&#xff0c;《华为战略管理法&#xff1a;DSTE实战体系》作者、著名战略管理专家谢宁老师赋能一汽汽车集团&#xff0c;开展《从市场洞察到产品规划及产品线端到端经营管理》工作坊。 一汽汽车集团相关产品线团队成员&#xff08;涉及到研发、生产、市场、…

备忘:PythonREPL中py_repl.run方法执行报错和修改方法

PythonREPL是python提供的 “Read–Eval–Print Loop”&#xff08;读取-求值-打印-循环&#xff09;的缩写&#xff0c;它是一种简单的、交互式的编程环境&#xff0c;我们之前在用AI生成代码后执行就使用这个方法&#xff0c;例如 def py_repl_tool(self, realcode: str):py…

DLS MARKETS外汇:美指牛市通道稳固,非农数据和美国大选成关键因素

摘要&#xff1a; 尽管近期美国经济数据表现疲弱&#xff0c;但美元指数&#xff08;美指&#xff09;依旧表现平稳。本周五即将公布的6月非农就业数据&#xff0c;以及即将到来的美国总统大选&#xff0c;将成为影响美元走势的关键因素。在技术面上&#xff0c;美指保持在牛市…

npm 淘宝镜像证书过期,错误信息 Could not retrieve https://npm.taobao.org/mirrors/node/latest

更换 npm 证书 问题描述报错原因更换步骤1 找到 nvm 安装目录2 发现证书过期3 更换新地址4 保存后&#xff0c;重新安装成功 问题描述 在使用 nvm 安装新版本时&#xff0c;未成功&#xff0c;出现报错&#xff1a; Could not retrieve https://npm.taobao.org/mirrors/node/l…