前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >每日两题 T32

每日两题 T32

作者头像
合一大师
发布2020-07-20 09:51:12
3770
发布2020-07-20 09:51:12
举报

算法

LeetCode T面试题 08.11. 硬币[1]

描述

硬币。给定数量不限的硬币,币值为25分、10分、5分和1分,编写代码计算n分有几种表示法。(结果可能会很大,你需要将结果模上1000000007)

示例1 :

 输入: n = 5
 输出:2
 解释: 有两种方式可以凑成总金额:
5=5
5=1+1+1+1+1

示例2 :

输入: n = 10
 输出:4
 解释: 有四种方式可以凑成总金额:
10=10
10=5+5
10=5+1+1+1+1+1
10=1+1+1+1+1+1+1+1+1+1

说明:

注意:

你可以假设:

•0 <= n (总金额) <= 1000000

分析

本题可使用动态规划或数学解法求解,以动态规划为例。

代码

/**
 * @param {number} n
 * @return {number}
 */
let waysToChange = (n) => {
  let dp = new Array(n + 1).fill(1)
  let coins = [1, 5, 10, 25]
  for (let i = 1; i < 4; i++) {
    for (let j = 1; j <= n; j++) {
      if (j - coins[i] >= 0) {
        dp[j] = (dp[j] + dp[j - coins[i]]) % (1e9 + 7)
      }
    }
  }
  return dp[n]
};

前端

a.b.c.d 和 a['b']['c']['d'],哪个性能更高?

a.b.c.da['b']['c']['d'] 性能高点,后者还要考虑 [ ] 中是变量的情况

再者,从两种形式的结构来看,显然编译器解析前者要比后者容易些,自然也就快一点。

总之,在项目中,尽量将对象中的属性结构使用, 示例

const obj = {name: 'walker', age: 10}
function test() {
  const {name, age} = obj
  console.log(name)
  console.log(age)
}

References

[1] 面试题 08.11. 硬币: https://leetcode-cn.com/problems/coin-lcci/

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JavaScript全栈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算法
    • LeetCode T面试题 08.11. 硬币[1]
      • 描述
        • 分析
          • 代码
          • 前端
            • a.b.c.d 和 a['b']['c']['d'],哪个性能更高?
              • References
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档