如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
https://www.v2ex.com/pro/about

如果你经常使用铜币置顶主题,持有 V2EX Solana Token 会在每日签到时获得额外铜币:
https://www.v2ex.com/solana
hakunamatata11
V2EX  ›  推广

LintCode 题解 | 微软北京 Azure 面试真题:数组除了自身的乘积

  •  
  •   hakunamatata11 · Feb 11, 2020 · 1726 views
    This topic created in 2306 days ago, the information mentioned may be changed or developed.

    微软 Azure 电面第一题,LintCode 原题,比较简单,关键 testcase 的时候举出 0 这种 case 就行。

    题目描述

    给定 n 个整数的数组 nums,其中 n> 1,返回一个数组输出,使得 output [i]等于 nums 的所有除了 nums [i]的元素的乘积。

    题目样例

    样例 1 输入: [1,2,3,4] 输出: [24,12,8,6] 解释: 234=24 134=12 124=8 123=6

    样例 2 输入: [2,3,8] 输出: [24,16,6] 解释: 38=24 28=16 2*3=6

    评测与题解

    →戳这里在线评测及查看题解

    /**
    * 本参考程序来自九章算法,由 @九章算法助教团队 提供。版权所有,转发请注明出处。
    * - 九章算法致力于帮助更多中国人找到好的工作,教师团队均来自硅谷和国内的一线大公司在职工程师。
    * - 现有的面试培训课程包括:九章算法班,系统设计班,算法强化班,Java 入门与基础算法班,Android 项目实战班,
    * - Big Data 项目实战班,算法面试高频题班, 动态规划专题班
    * - 更多详情请见官方网站: http://www.jiuzhang.com/?utm_source=sc-jianshucode-lm0210
    */ 
    public class Solution {
        public int[] productExceptSelf(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;
                right *= nums[i];
            }
            return res;
        }
    }
    
    3 replies    2020-02-11 17:06:20 +08:00
    ooops
        1
    ooops  
       Feb 11, 2020
    LeetCode ?
    ooops
        2
    ooops  
       Feb 11, 2020
    忽略上条,我无知了。。
    hakunamatata11
        3
    hakunamatata11  
    OP
       Feb 11, 2020
    @ooops 没事的哈 可以注册一个试试看呢
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5333 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 08:35 · PVG 16:35 · LAX 01:35 · JFK 04:35
    ♥ Do have faith in what you're doing.