zoukankan      html  css  js  c++  java
  • js上 二十、综合案例

    二十、综合案例

    题目一:

    **1. ** 数组随机

    描述,写randomArray函数,传递一个数组,传递一个数值,返回一个指定个数的随机的新数组,不允许有重复数据

    用例:

    randomArray([

    '小明', '小红', '小绿', '小白', '小黄', '小蓝', '小黑', '小青'

    ], 3)

    结果:

    ['小红', '小白', '小明']

    **思路 ** **:获取数组的随机值: ** Math.floor(Math.random()*arr.length);

    利用循环多次随机,然后判断随机来的内容是否在新数组中存在,(indexOf判断)如果不存在,添加到新数组中,当数组的长度达到指定的长度,则不需要随机

    img

    题目二:

    2: 只出现一次的数字

    描述:给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。

    示例 1:

    输入: singleNumber( [2,2,1] )

    输出: 1

    示例 2:

    输入: singleNumber([4,1,2,1,2])

    输出: 4

    思路:判断数组的每一个元素第一次出现的位置(indexOf)和最后一次出现的位置(lastIndexOf)的位置一样(即从前往后找和从后往前找,位置一样)那说明只有一个,不一样,说明有两个

    img

    题目三:

    3,时间

    JS转换时间戳为“刚刚”、“1分钟前”、“2小时前”“1天前”等格式

    描述:类似于微信朋友圈,根据时间戳转换出(刚刚,1分钟前,1小时前,昨天,几天前,几周前,几个月前)

    var toDateFriendly = function (timestr) {}

    实例

    toDateFriendly(1564738511482) // 刚刚

    toDateFriendly((+new Date()) – 1000 * 60 ) // 1分钟前

    思路:调用时传入的是发送的时间;

    获取当前时间;

    求时间差

    然后判断时间差,如果小于1分钟,那么弹出刚刚

    如果时间差小于1小时,那么具体计算到底是多少分钟

    如果实现差小于1天,那么具体计算到底是多少小时

    否则,具体计算是多少天;

    img

    题目四:

    封装一个numberSort(nList)函数,实现如下功能:

    nList是个数字串,例如1,4,5,23,2,17,24,897。

    请把这串数字转为数组后按照中间高两边低进行排序,

    最后的结果是["1", " 4", " 5", " 23", " 897", " 24", " 17", " 2"],请注意左右翼数据数据的平衡性(左右两边的数个数一致)。

    console.log(numberSort('1, 4, 5, 23, 2, 17, 24, 897'));

    //打印结果是["1", " 4", " 5", " 23", " 897", " 24", " 17", " 2"]

    console.log(umberSort('12, 4, 0,65,30,8,19'));

    // 打印结果是[" 0", " 4", "12", "65", "30", "19", "8"]

    思路:1)数字串nList转为数组 str.split(分隔符)

    3) 判断数组长度是否为偶数

    4) 将数组一分为二,平均分成两个小数组 slice()

    5) 排序 ,

    6) 合并

    7) 先将最大数从数组中截取并删除掉

    8) 删除最大值 splice()

    9) 排序

    10) 合并

    题目

    img

    题目五:

    完成 isAnagram,接受两个字符串作为参数,返回true 或者 false 表示这两个字符串是否同字母异序。

    同字母异序指的是两个字符串字母种类和字母的数量相同,但是顺序可能不同

    例如:

    isAnagram("anagram", "nagaram") // return true.

    isAnagram("rat", "car") // return false.

    思路:

    如果两个字符串全等,说明是同字母同序

    如果两个字符排序(先转数组(split)才能用sort排序)然后转字符串(join)后全等,说明是同字母异序;

    img

    img

  • 相关阅读:
    Codeforces Round #325 (Div. 2) F:(meet in the middle)
    Educational Codeforces Round 3:E (MST+树链剖分+RMQ)
    Educational Codeforces Round 3:D. Gadgets for dollars and pounds(二分答案+贪心)
    CodeForce 484B:(最大余数)
    CodeForce 540C:(DFS)
    HDU 1010:(DFS)
    Poj1741-Tree(树分治)
    uva10245-The Closest Pair Problem(平面上的点分治)
    hdu1561-The more, The Better(树形dp)
    hdu2196-Computer(树形dp)
  • 原文地址:https://www.cnblogs.com/yzy521/p/14132719.html
Copyright © 2011-2022 走看看