美文网首页
LintCode题解 | 微软北京Azure面试真题:数组除了自

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

作者: SunnyZhao2019 | 来源:发表于2020-02-10 15:53 被阅读0次

    微软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
    2
    8=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;
        }
    }
    

    相关文章

      网友评论

          本文标题:LintCode题解 | 微软北京Azure面试真题:数组除了自

          本文链接:https://www.haomeiwen.com/subject/vzbaxhtx.html