2021 : 面试——算法

224 阅读3分钟

用栈来模拟队列(小米)

求最长递增子序列(小米)

给定数组arr,设长度为n,输出arr的最长递增子序列。(如果有多个答案,请输出其中 按数值(注:区别于按单个字符的ASCII码值)进行比较的 字典序最小的那个)

输入

[2,1,5,3,6,4,8,9,7]

输出

[1,3,4,8,9]

确定两串乱序同构(小米)

给定string stringA和string stringB,编写程序确认两字符串包含的字符是否完全相同,注意大小写为不同字符,且考虑字符串中的空格,返回一个bool,代表两串是否由一样的字符组成。保证两串的长度都小于等于5000。

测试样例:

"This is nowcoder","is This nowcoder"
返回:true
"Here you are","Are you here"
返回:false

整数中1出现的次数(从1到n整数中1出现的次数)(小米)

输入一个整数 n ,求1~n这n个整数的十进制表示中1出现的次数 例如,1~13中包含1的数字有1、10、11、12、13因此共出现6次

示例1

// 输入
13
// 输出
6

括号生成(小米)

给出n对括号,请编写一个函数来生成所有的由n对括号组成的合法组合。\

例如,给出n=3,解集为:

"((()))", "(()())", "(())()", "()()()", "()(())",

示例1

// 输入
1
// 输出
["()"]

示例2

// 输入
1
// 输出
["(())","()()"]

逢3牵羊

有一群羊(100只),围成一圈吃草,每只羊身上挂着一个数字。现在从任意一只羊开始从1数,当数到3时,将此羊牵出来,然后从下一只羊开始再从1开始数,数到3时,牵出。以此往复,直到只剩下一只羊为止,牵出。请按照羊牵出的顺序打印羊身上的数字。

最长公共子序列

const str1 = 'vueisthebest'
const str2 = 'reactisthebest'

// 'isthebest'

使用栈实现一个队列

实现一个阶乘函数

解析http url中的search(美团、字节)

获取 url 参数

限定语言:HTML/CSS/JavaScript

获取 url 中的参数\

  1. 指定参数名称,返回该参数的值 或者 空字符串\

  2. 不指定参数名称,返回全部的参数对象 或者 {}\

  3. 如果存在多个同名参数,则返回数组

  4. 不支持URLSearchParams方法

示例1

输入

http://www.nowcoder.com?key=1&key=2&key=3&test=4#hehe key

输出

[1, 2, 3]

一维数组转树状结构

题目:

数据如下

[
{id: 1, name: 'a', parentId: 0},
{id: 2, name: 'b', parentId: 0},
{id: 3, name: 'c', parentId: 1},
{id: 4, name: 'd', parentId: 1},
{id: 5, name: 'e', parentId: 2},
{id: 6, name: 'f', parentId: 2},
]

目标结构如下

[
{id: 1, name: 'a', parentId: 0,
  children: [
    {id: 3, name: 'c', parentId: 1},
    {id: 4, name: 'd', parentId: 1},
  ]
},
{id: 2, name: 'b', parentId: 0,
  children: [
    {id: 5, name: 'e', parentId: 2},
    {id: 6, name: 'f', parentId: 2},
  ]
},
]

去除/

实现函数,输入num删除字符串中的第num个'/'

const str = 'abc/defg/hi/jkl/mn/opqrst'

去除字符串中不匹配的括号

实现加减法运算函数(字节)

var test = '1+31-24+100-92'
const calc = str => {}
calc(test) // 16

找出被删除的数(字节)

有序数字0-N,随机删除其中一项,希望能以最快的方式找到这一项。要求时间复杂度小于On。

const arr = [0123567]
const find = (arr) => {}
find(arr) // 4

随机五个点的最小外切矩形的面积(百度)

参考链接:www.cnblogs.com/wind-lanyan…

找出对大连续子数组

leetCode链接:leetcode-cn.com/problems/li…

const arr = [0121567]
const findMacSorted = (arr) => {}
findMacSorted(arr) // [1,5,6,7]