最小值总和【一天一个算法陶冶情操 | 算法练习生第5天】

今天更新两道题

题目1: 最小值总和

js 复制代码
// 给定一个二维数组, 在每一组中获取最小值并求和
const list = [
  [1, 3, 7, 2, 9, 100, 2],
  [98, 6, 89, 3, 1, 10],
  [20, 100, 8]
]

// 方案一
function getSumOfMin(arr) {
  return arr.reduce((a, b) => a + Math.min(...b), 0)
}
/**
 * 简析
 * 通过Math.min获取最小值, 然后通过reduce将每组的最小值累加
 */
const result = getSumOfMin(list)
console.log(result)

// 方案2
function getSumOfMin2(arr) {
  let result = 0
  arr.map((item) => {
    let min = Infinity
    item.map((childItem) => {
      if (min > childItem) {
        min = childItem
      }
    })
    result += min
  })
  return result
}
/**
 * 简析
 * 对数组进行遍历, 通过给定一个无穷大的最小值, 将这个最小值与每组的每个值相比, 拿到每组的最小值, 然后...
 */
const result2 = getSumOfMin(list)
console.log(result2)

题目2: 自缚手脚_四七

js 复制代码
// 这个题有点意思 不过看看了解下就得了
/**
 * 简单的规则:
 * 您的函数应接受输入4和7。
 * 如果输入4,函数应返回7。如果输入7,函数应返回4。
 * 输入的其他任何内容都应返回 0。
 * 只有一个要求,您的函数不能包含if语句,switch语句或三元运算符(或eval函数,因为您可以绕开if要求来使用它)。
 * 有一些非常简单的方法可以解决此问题,但是我鼓励您尝试并尽可能发挥创造力。
 * 祝好运!
 */
// 方案1
function fourSeven(val) {
  const a = {
    4: 7,
    7: 4
  }
  console.log(a[val] || 0) // 直接在这打印了...
  return a[val] || 0
}

fourSeven(4)
fourSeven(7)
fourSeven(100)

// 方案2
function fourSeven2(val) {
  while (val === 4) {
    console.log(7)
    return 7
  }
  while (val === 7) {
    console.log(4)
    return 4
  }
  console.log(0)
  return 0
}

fourSeven(4)
fourSeven(7)
fourSeven(100)
相关推荐
AI科技星1 分钟前
宇宙的几何诗篇:当空间本身成为运动的主角
数据结构·人工智能·经验分享·算法·计算机视觉
程序媛_MISS_zhang_01104 分钟前
浏览器开发者工具(尤其是 Vue Devtools 扩展)和 Vuex 的的订阅模式冲突
前端·javascript·vue.js
fruge6 分钟前
Vue3.4 Effect 作用域 API 与 React Server Components 实战解析
前端·vue.js·react.js
前端小L13 分钟前
二分查找专题(二):lower_bound 的首秀——精解「搜索插入位置」
数据结构·算法
神秘的猪头19 分钟前
🌐 CSS 选择器详解:从基础到实战
前端·javascript
Zyx200719 分钟前
JavaScript 执行机制深度解析(上):编译、提升与执行上下文
javascript
远山枫谷20 分钟前
CSS选择器优先级计算你真的会吗?
前端·css
Forever_xl20 分钟前
埋点监控平台全景调研
前端
神秘的猪头20 分钟前
JavaScript 中的 `map()` 方法详解与面向对象编程初探
前端·javascript
有点笨的蛋21 分钟前
这些 CSS 小细节没处理好,你的页面就会“闪、抖、卡”——渲染机制深度拆解
前端·css