常用算法

求最大公约数

const gcd = function (a, b) {
  if (a % b == 0) return b;
  return gcd(b, a % b);
}

判断字符串是否为回文串

const isPalindrome = function (s) {
  return s === s.split('').reverse().join('');
}

判断数字是否为质数

const isPrime = function (n) {
  for (let i = 2; i < Math.sqrt(n) >> 0; i++) {
    if (n % i === 0) return false;
  }
  return true;
}

判断数组中是否存在相同元素

arr.length === new Set(arr).size

求阶乘

const factorial = function (num) {
  if (num === 0) return 1;
  return num * factorial(num - 1);
}

二进制中1的个数

const number2 = function (num) {
  let sum = 0;
  while (num) {
    num = num & (num - 1);
    sum++;
  }
  return sum;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、 对以下一组数据进行降序排序(冒泡排序)。 2、 对以下一组数据进行升序排序(选择排序)。 3、 快速排序算法...
    树懒啊树懒阅读 433评论 0 1
  • 什么是递归? 递归(Recursion),又译为递回,在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。...
    wopen阅读 887评论 0 0
  • JAVA经典算法40题 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到...
    密奕阅读 356评论 0 0
  • 1、二分查找 二分查找思想简单,但是在实现时有一些需要注意的细节: 1、在计算 mid 时不能使用 mid = (...
    萌小熙喵阅读 595评论 0 1
  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,916评论 0 2