首页 > 其他分享 >力扣238.除自身以外数组的乘积

力扣238.除自身以外数组的乘积

时间:2024-08-29 22:22:30浏览次数:13  
标签:乘积 nums int 元素 力扣 length 238 answer

class Solution {
    public int[] productExceptSelf(int[] nums) {
        // 获取数组长度
        int length = nums.length;
        // 创建一个新数组,用于存储结果
        int[] answer = new int[length];
        // 初始化第一个元素为1,因为乘积不包括自身
        answer[0] = 1;
        // 从第二个元素开始,计算左侧元素的乘积
        for (int i = 1; i < length; i++) {
            // 当前位置的乘积等于前一个位置的乘积乘以当前位置左侧的元素
            answer[i] = nums[i - 1] * answer[i - 1];
        }
        // R用于存储右侧所有元素的乘积
        int R = 1;
        // 从最后一个元素开始,计算右侧元素的乘积并更新结果数组
        for (int i = length - 1; i >= 0; i--) {
            // 当前位置的结果等于左侧元素的乘积乘以右侧元素的乘积
            answer[i] = answer[i] * R;
            // 更新R为当前元素与R的乘积
            R *= nums[i];
        }
        // 返回结果数组
        return answer;
    }
}

标签:乘积,nums,int,元素,力扣,length,238,answer
From: https://blog.csdn.net/2401_83010439/article/details/141650181

相关文章

  • 力扣: 环形链表
    文章目录需求MapSet快慢指针结尾需求给你一个链表的头节点head,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。......
  • 力扣热题100_贪心算法_45_跳跃游戏
    文章目录题目链接解题思路解题代码题目链接45.跳跃游戏II给定一个长度为n的0索引整数数组nums。初始位置为nums[0]。每个元素nums[i]表示从索引i向前跳转的最大长度。换句话说,如果你在nums[i]处,你可以跳转到任意nums[i+j]处:0<=j<=nums[i]......
  • 【力扣】3145.大数组元素的乘积
    题目描述一个非负整数 x 的 强数组 指的是满足元素为2的幂且元素总和为 x 的最短有序数组。下表说明了如何确定 强数组 的示例。可以证明,x 对应的强数组是独一无二的。数字二进制表示强数组100001[1]801000[8]1001010[2,8]1301101[1,4,8]2310111[1,2,4,16]......
  • 56. 合并区间【 力扣(LeetCode) 】
    一、题目描述  以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。二、测试用例示例1:输入:intervals=[[1,3],[2,6],[8,10],[15,18]]输......
  • 力扣刷题---链表专题(超详细解析!!!)
    文章目录题目203.移除链表元素876.链表的中间结点024.反转链表21.合并两个有序链表面试题02.04分割链表面试题02.02.返回倒数第K个节点023.相交链表题目203.移除链表元素题目链接这个题目有两种方法,第一种是创建新的链表,然后将原链表遍历一遍,跳过所有值为val的......
  • 力扣34
    classSolution{publicint[]searchRange(int[]nums,inttarget){intx=left(nums,target);if(x==-1){returnnewint[]{-1,-1};}else{returnnewint[]{x,right(nums,target)};}}......
  • 力扣35
    1.Java的二分查找publicintsearchInsert(int[]nums,inttarget){inti=0,j=nums.length-1;while(i<=j){intm=(i+j)>>>1;if(target<nums[m]){j=m-1;}......
  • 二分查找算法:朴素二分+左右边界二分&力扣实战应用
    目录:1、二分查找算法简介2、算法原理及时间复杂度分析2.1朴素二分算法3.2查找左右边界的二分算法3.2.1查找左边界3.2.2查找右边界3.3时间复杂度分析3、二分查找算法模版3.1朴素二分模版3.2查找左右边界的二分模版4、算法应用【leetcode】4.1题一:搜素插入位......
  • 用哈希表求解力扣第217题 存在重复元素
    前言记录一下刷题历程力扣第217题存在重复元素两数之和原题目:给你一个整数数组nums。如果任一值在数组中出现至少两次,返回true;如果数组中每个元素互不相同,返回false。示例1:输入:nums=[1,2,3,1]输出:true示例2:输入:nums=[1,2,3,4]输出:false示例3:输......
  • 程序员必备的的5个刷题网站。大厂面试稳了 力扣 https://leetcode.cn
    程序员必备的的5个刷题网站。大厂面试稳了力扣https://leetcode.cn1、leetcode力扣。网址:https://leetcode.cnLeetCode是一个定位为求职的刷题网站,其中又以算法题为主。很多大厂在面试的时候,都会考算法。有空就刷一刷这里面的算法题,你的算法水平肯定会有大幅的提升,不管是求职,......