首页 > 编程语言 >程序员面试金典---23

程序员面试金典---23

时间:2023-05-07 22:12:24浏览次数:34  
标签:const cur 23 金典 --- num let push return

整数英语的表示

思路:三位一写。

/**
 * @param {number} num
 * @return {string}
 */
var numberToWords = function(num) {
    const singles = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"];
    const teens = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"];
    const tens = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
    const thousands = ["", "Thousand", "Million", "Billion"];

    // 判断
    const recursion = (cur, num) => {
        if(num === 0) return
        else if(num < 10){
            cur.push(singles[num] + " ")
        }else if(num < 20){
            cur.push(teens[num - 10] + " ")
        }else if(num < 100){
            cur.push(tens[Math.floor(num / 10)] + " ")
            recursion(cur, num % 10)
        }else{
            cur.push(singles[Math.floor(num / 100)] + " Hundred ")
            recursion(cur, num % 100)
        }
    }

    if(num === 0){
        return "Zero"
    }

    const sb = []

    for(let i = 3, unit = 1000000000; i >= 0; i--, unit = Math.floor(unit / 1000)){
        const curNum = Math.floor(num / unit)
        if(curNum !== 0){
            num -= curNum * unit
            const cur = []
            recursion(cur,curNum)
            cur.push(thousands[i] + " ") 
            sb.push(cur.join(''))
        }
    }
    return sb.join('').trim()
};

生存人数

思路:差分数组

/**
 * @param {number[]} birth
 * @param {number[]} death
 * @return {number}
 */
var maxAliveYear = function(birth, death) {
    let len = birth.length
    let a = new Array(2003).fill(0)
    // 左加一右减一
    for(let i = 0; i < len; i++){
        let x = birth[i], y = death[i]
        a[x] += 1
        a[y + 1] -= 1
    }
    // 前缀和求解
    let max = 0
    let idx = 0
    let sum = 0
    for(let i = 1900; i <= 2000; i++){
        sum += a[i]
        if(max < sum){
            max = sum
            idx = i
        }
    }
    return idx
};

标签:const,cur,23,金典,---,num,let,push,return
From: https://www.cnblogs.com/dgqp/p/17380276.html

相关文章

  • ZJOI2018树--等价类相关计算
    ZJOI2018树节点1作为树的根。对于\(i\in[2,n]\),独立地从\([1,i)\)中等概率随机选取一个节点作为\(i\)的父亲。通过上面的方法独立的随机生成\(k\)棵\(n\)个节点的有根树\(T_1\)至\(T_k\),他们两两同构的概率是多少。denote\(s(t)\)thewaysassignnu......
  • Vue.js:Vue-Router动态路由从服务器接口获取路由数据
    (目录)文档https://v3.router.vuejs.org/zh/installation.html版本号"vue":"2.6.10","vue-router":"3.6.5",有几种方式实现动态路由:前端配置完整路由,通过接口返回的数据判断是否可显示,是否可访问前端配置部分路由,由后端接口返回的数据生成新路由抛开路由的思维,是否......
  • JS逆向 -- 某平台登录算法分析(RSA加密)
    一、输入账号密码,进行抓包二、F12打开开发者工具,抓包分析,password被加密了三、全局搜索password关键字,挨个分析,在箭头标记处找到了关键代码四、局部搜索,定位加密的关键点,通过JSEncrypt,setPublicKey等关键字分析是RSA加密五、代码编写1、调用RSA加密的基本代码编写functionaiyou(pw......
  • Java多线程--让主线程等待所有子线…
    朋友让我帮忙写个程序从文本文档中导入数据到oracle数据库中,技术上没有什么难度,文档的格式都是固定的只要对应数据库中的字段解析就行了,关键在于性能。   数据量很大百万条记录,因此考虑到要用多线程并发执行,在写的过程中又遇到问题,我想统计所有子进程执行完......
  • Rockchip RK3399 - uboot移植
    ----------------------------------------------------------------------------------------------------------------------------开发板 :NanoPC-T4开发板eMMC  :16GBLPDDR3:4GB显示屏 :15.6英寸HDMI接口显示屏u-boot  :2014.10---------------------------------------......
  • 【pandas基础】--核心数据结构
    pandas中用来承载数据的两个最重要的结构分别是:Series:相当于增强版的一维数组DataFrame:相当于增强版的二维数组pandas最大的优势在于处理表格类数据,如果数据维度超过二维,一般我们会使用另一个python的库numpy。本篇主要介绍这两种核心数据结构的创建方式。1.Seriespand......
  • 特性介绍 | MySQL 测试框架 MTR 系列教程(二):进阶篇 - 内存/线程/代码覆盖率/单元/压力
    作者:卢文双资深数据库内核研发序言:以前对MySQL测试框架MTR的使用,主要集中于SQL正确性验证。近期由于工作需要,深入了解了MTR的方方面面,发现MTR的能力不仅限于此,还支持单元测试、压力测试、代码覆盖率测试、内存错误检测、线程竞争与死锁等功能,因此,本着分享的精神,将其......
  • /bin/bash -c 的作用
    k8s的很多yaml的配置文件中,很多地方执行bash命令时要加上-c。bash手册中对其解释-cstringIfthe-coptionispresent,thencommandsarereadfromstring.Ifthereareargumentsafterthestring,theyareassignedtothepositionalparameters,startingwith......
  • Python wordpress-xmlrpc错误:xml.parsers.expat.ExpatError: XML or text declaration
    解决方法:修改打开client.py文件原代码:deffeed(self,data):self._parser.Parse(data,0)改成如下的代码:deffeed(self,data):self._parser.Parse(data.strip(),0)......
  • 12 KVM虚拟机配置-配置虚拟设备(网络设备)
    12KVM虚拟机配置-配置虚拟设备(网络设备)12.1概述XML配置文件可以配置虚拟网络设备,包括ethernet模式、bridge模式、vhostuser模式等,本节介绍虚拟网卡设备的配置方法。12.2元素介绍XML配置文件中使用元素“interface”,其属性“type”表示虚拟网卡的模式,可选的值有“ethernet......