数据结构和算法常见的问题和代码

简介: 数据结构和算法常见的问题和代码

注意:使用typeof的时候,一定是在后面的类型上加引号,否则会出错。

  codewars

  1.使用XO()函数判断一个字符串中x和o的数量是否相等,相等则返回true,否则返回false。且忽略大小写。

方法一:

复制代码
function XO(str) {
  
if(str.match(/x/ig).length == str.match(/o/ig).length){
return true;
}
return false;
}
复制代码
  注意:1.匹配正则表达式时,ig表示忽略大小写且在全局中匹配,否则只会返回第一个匹配的字符串;

     2.match()方法,如果匹配成功,则返回一个数组;如果匹配不成功,则返回null。

     3.但是如果不存在o或着x,那么该方法将报错,因为null没有length属性,讨论将会复杂。

 //代码效果参考:http://www.zidongmutanji.com/zsjx/386983.html  

方法二:

View Code
  首先将字符串使用split()方法转化成数组,然后遍历,如果等于O,则j加,如果等于x,则k加1;最后判断是否相等,这种方法也非常棒。

2.DNA链条 A和T互补 C和G互补,输入字符串ATCG应当输出TAGC,如下:

View Code
  注意:一定要continue,否则会出现问题。另外可以发现:处理字符串时,先转化为数组往往有好的效果,因为可以遍历。

3.判断一个数是否是 square number,方法如下:

View Code

4.给你m块砖搭建一个房子,最底层为n的三次方块转,第二层为(n-1)的三次方...最上面为1块砖,然后给你一个m,去判断是否存在这样的一个n,有则输出n,没有则输出-1.

View Code

  1. 删除一个数组中冗余的项。

    View Code

6.给一个字符串,返回中间两个数

View Code

  1. (好题)判断输入一个整数返回的乘积次数。

    View Code

8. 智商检测---从偶数中找奇数,从奇数中找偶数

View Code

  1. 找出所有的除数

    View Code

第二部分: 常见题

function foo(n) {
var i = 1;
while (i < = n) {
i *= 2;
}
}

 这个函数的时间复杂度是多少?

 时间复杂度即根据不同的输入(这里是n),那么程序的语句执行的次数就可以理解为时间复杂度。

 这里每执行一次,i为2x ,每执行一次,x就会增加1, 可见当2x = n 时, 程序执行完毕,那么x为log n ,于是程序的复杂度为 O(logn)

斐波那契数列的时间复杂度是多少?

斐波那契数列f(0)开始,第0项是0,第1项是1,后面的每一项是前面两项之和,最易理解的是递归形式。那么它的时间复杂度是多少呢?

复制代码
function fibbnaqi(n) {
if (n <= 1) {
return n;
} else {
return fibbnaqi(n - 1)+fibbnaqi(n - 2);
}
}
function log(n) {
console.log(fibbnaqi(n));
}
log(0); // 0在斐波那契数列中有f(0)这一项,所以从0开始
log(1); // 1
log(2); // 1
log(3); // 2
log(4); // 3

相关文章
|
1天前
|
算法 安全 Java
Java数据结构与算法:并发数据结构ConcurrentLinkedQueue
Java数据结构与算法:并发数据结构ConcurrentLinkedQueue
|
1天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之冒泡排序
Java数据结构与算法:排序算法之冒泡排序
|
1天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之归并排序
Java数据结构与算法:排序算法之归并排序
|
1天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之插入排序
Java数据结构与算法:排序算法之插入排序
|
1天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之快速排序
Java数据结构与算法:排序算法之快速排序
|
1天前
|
算法 Java 机器人
Java数据结构与算法:查找算法之二分查找
Java数据结构与算法:查找算法之二分查找
|
23小时前
|
人工智能 算法
程序技术好文:算法与数据结构
程序技术好文:算法与数据结构
|
1天前
|
搜索推荐 算法 Java
Java数据结构与算法:排序算法之选择排序
Java数据结构与算法:排序算法之选择排序
|
1天前
|
算法 Java 机器人
Java数据结构与算法:查找算法之线性查找
Java数据结构与算法:查找算法之线性查找
|
1天前
|
算法 搜索推荐 Java
Java数据结构与算法:排序算法之堆排序
Java数据结构与算法:排序算法之堆排序