30天刷题挑战(二十四)

题目来源: LeetCode 75 30 天 JavaScript 挑战

2695. 包装数组

代码

js 复制代码
/**
 * @param {number[]} nums
 * @return {void}
 */
var ArrayWrapper = function(nums) {
    this.arr = nums
};

/**
 * @return {number}
 */
ArrayWrapper.prototype.valueOf = function() {
    return this.arr.reduce((cur, pre) => cur + pre, 0)
}

/**
 * @return {string}
 */
ArrayWrapper.prototype.toString = function() {
  return `[${this.arr.join(",")}]`
}

338. 比特位计数

思路

根据二进制奇偶数特性,奇数一定比前面那个偶数多一个 1; 偶数中 1 的个数一定和除以 2 之后的那个数一样多

代码

js 复制代码
/**
 * @param {number} n
 * @return {number[]}
 */
var countBits = function(n) {
  let res = Array(n + 1).fill(0)

  for(let i = 1; i <= n; i++) {
     if (i % 2 === 1) {
       res[i] = res[i - 1] + 1
     } else {
       res[i] = res[i/2]
     }

  }
  
  return res
};

136. 只出现一次的数字

思路

位运算,由于题目告诉了其他数字都出现了两次,所以使用异或算法,将相同的数字变成 0

代码

js 复制代码
/**
 * @param {number[]} nums
 * @return {number}
 */
var singleNumber = function(nums) {
  let ans = 0

  for(let n of nums) {
    ans ^= n
  }
  
  return ans
};

1318. 或运算的最小翻转次数

思路

模拟法,先声明一个变量记录操作数,如果 a 和 b 的第一位或操作不等于 c 的第一位,ab 都需要操作就加 2,否则加 1;abc 都进行右移 1 位的操作,直到三个数都为 0。

代码

js 复制代码
const minFlips = (a, b, c) => {
  let ret = 0;
  
  while (a > 0 || b > 0 || c > 0) {
    if (((a & 1) | (b & 1)) !== (c & 1)) {
      ret += (a & 1) === 1 && (b & 1) === 1 ? 2 : 1;
    }
    
    a >>>= 1;
    b >>>= 1;
    c >>>= 1;
  }
  
  return ret;
};

本文完,感谢阅读。

相关推荐
Bigger2 分钟前
第八章:我是如何剖析 Claude Code 里的“电子宠物”彩蛋的
前端·ai编程·源码阅读
阿Y加油吧8 分钟前
从斐波那契到动态规划:两道入门题吃透 DP 核心思想
算法·动态规划·代理模式
米啦啦.9 分钟前
多态性、虚函数
开发语言·c++·算法·多态·抽象类·纯虚函数
qq_3643717215 分钟前
NestJS + LangChain SSE 流式输出 + 前端实时渲染打字机效果
前端·langchain
承渊政道17 分钟前
【递归、搜索与回溯算法】(二叉树深搜模型拆解与经典题型全面突破)
数据结构·c++·学习·算法·leetcode·macos·bfs
1314lay_100717 分钟前
axios的Post方法和Delete方法的参数个数和位置不同,导致415错误
前端·javascript·vue.js·elementui
隐于花海,等待花开23 分钟前
Hive专题:数据开发面试高频题(TopN、留存、连续登录等)
hive·hadoop·面试
LXXgalaxy24 分钟前
HTML头部元信息避坑指南
前端·html
studyForMokey25 分钟前
【Android面试】设计模式专题
android·设计模式·面试
qq_3813385025 分钟前
现代 CSS 黑科技:Container Queries、:has() 与嵌套语法实战
前端·css·科技