mtonhuang / blog

博客,想法,笔记

Home Page:http://huangmiantong.cn/ (已废弃)

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

leetcode算法

mtonhuang opened this issue · comments

leetcode刷题心得分享

博主在刷leetcode时认为还不错的题目,大部分有发布个人题解(貌似反响还可以~),在此记录心得并且分享给大家(以下排序不分先后,并在代码里附带了本人leetcode链接,欢迎大家踩踩)[以下题目都来自leetcode,本人题解]

369. 两个数组的交集

给定两个数组,编写一个函数来计算它们的交集。

示例 1:

输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:

输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]

~ 解题思路:

  • 妙用includes和set方法
/**
 * @param {number[]} nums1
 * @param {number[]} nums2
 * @return {number[]}
 */
var intersection = function(nums1, nums2) {
    let arr = [];
    for(let i = 0; i < nums1.length; i++) {
        if (nums2.includes(nums1[i])) {
            arr.push(nums1[i]);
        }
    }
    return Array.from(new Set(arr))
};
作者:mtonhuang
链接:https://leetcode-cn.com/problems/intersection-of-two-arrays/solution/includessettou-lan-jie-fa-by-mtonhuang/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1464. 数组中两元素的最大乘积

给你一个整数数组 nums,请你选择数组的两个不同下标 i 和 j,使 (nums[i]-1)*(nums[j]-1) 取得最大值。

请你计算并返回该式的最大值。

示例:
输入:nums = [3,4,5,2]
输出:12
解释:如果选择下标 i=1 和 j=2(下标从 0 开始),则可以获得最大值,(nums[1]-1)(nums[2]-1) = (4-1)(5-1) = 3*4 = 12

~ 解题思路:

  • 求出最大值a
  • 删除a
  • 再求出最大值b
  • 进而求出答案
/**
 * @param {number[]} nums
 * @return {number}
 */
var maxProduct = function (nums) {
    let a = Math.max(...nums);
    nums.splice(nums.indexOf(a), 1, '');
    let b = Math.max(...nums);
    return (a - 1) * (b - 1)
};
作者:mtonhuang
链接:https://leetcode-cn.com/problems/maximum-product-of-two-elements-in-an-array/solution/miao-yong-mathmaxspliceindexof-by-mtonhuang/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

面试题 08.05. 递归乘法

递归乘法。 写一个递归函数,不使用 * 运算符, 实现两个正整数的相乘。可以使用加号、减号、位移,但要吝啬一些。

示例1:

输入:A = 1, B = 10
输出:10
示例2:

输入:A = 3, B = 4
输出:12

~ 解题思路:

  • 不用递归的方法
/**
 * @param {number} A
 * @param {number} B
 * @return {number}
 */
var multiply = function (A, B) {
    let res = 0;
    for(let i = 0; i < B; i++) {
        res+= A
    }
    return res;
};

作者:mtonhuang
链接:https://leetcode-cn.com/problems/recursive-mulitply-lcci/solution/mnben-zhi-jiu-shi-mnci-m-by-mtonhuang/
来源:力扣(LeetCode)
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。