简单算法题--每天坚持一点点~

£神魔★判官ぃ 2022-10-11 15:53 222阅读 0赞

双for循环:

  • 里层循环可看做是是外层循环的执行语句
  • 外层循环执行一次,里面循环就会执行全部

双for循环的实质

  • 外层for循环控制循环的高度(行数);
  • 内层for循环控制循环的宽度(列数);

    let nums = [1,2,3];

    1. for(let i = 0; i < nums.length;i++){
    2. console.log(i,'i');
    3. for(let j = i + 1; j < nums.length;j++){
    4. console.log(j,'j')
    5. }

    }

结果:

20210702150429300.png

1.求100以内的质数

  1. for(let i = 2; i < 100; i++){
  2. // 假设是质数就为true
  3. let flag = true;
  4. //循环判断该数字是否满足质数条件
  5. for(let j = 2; j < i;j++){
  6. // 如果遇到能被整除的,就代表不是质数,停止这层循环
  7. if(i % j == 0){
  8. flag = false
  9. }
  10. }
  11. if(flag){
  12. // 质数
  13. console.log(i)
  14. }
  15. }

2.整数翻转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。

示例1:

  1. 输入:x = 123
  2. 输出:321
  3. /**
  4. * @param {number} x
  5. * @return {number}
  6. * 1.先要把输入的数字转变成字符串,然有后字符串变成数组字符串,把这个数组里面内容翻转,然后数组字符串在字符串,
  7. * 2.把每个字符串变成数字
  8. * 3.但是如果有小于0的数字,反转后的数字减2倍就取反了
  9. * 4.大于0还是原来的数字
  10. * Math.pow(底数,几次方)
  11. */
  12. var reverse = function(x) {
  13. let str = parseInt(String(x).split('').reverse().join(''));
  14. if(str < 0){
  15. str = str - str - str;
  16. }
  17. if(str > Math.pow(-2,31) || str < Math.pow(2,31) - 1){
  18. return 0;
  19. }
  20. return str;
  21. };

3.回文数:

回文:指正读,反读都是一样的。例如:我为人人,人人为我

当然数学中,也有同样的

回文数:设n是任意自然数。若将n的各个数字反向排列所得自然数n1与n相等,则称n是回文数。

例如:1234321;1221(回文数),1234567(不是回文数)

注意:1.小数没有回文数 2.偶数也有回文数(234432)

  1. /**
  2. * @param {number} x
  3. * @return {boolean}
  4. * 1.首先要想到负数没有回文数,小数没有回文数,x已经说明了x是整数
  5. * 2.可以在设置一个x的反转后的数字y
  6. * 3.比较两个变量,如果相等就返回true,否则返回false
  7. */
  8. var isPalindrome = function(x) {
  9. if(x < 0){
  10. return false
  11. }else{
  12. let y = parseInt(String(x).split('').reverse().join(''))
  13. return x === y ? true : false;
  14. }
  15. }

4.判断字符是否唯一

输入: s = “leetcode”;

输出: false

  1. /**
  2. * @param {string} astr
  3. * @return {boolean}
  4. */
  5. var isUnique = function(astr) {
  6. // for(let i = 0; i < astr.length;i++){
  7. // for(let j = i + 1; j < astr.length;j++){
  8. // if(astr[i] === astr[j]){
  9. // return false;
  10. // }
  11. // }
  12. // }
  13. // return true;
  14. return new Set(astr).size === astr.length;
  15. };

发表评论

表情:
评论列表 (有 0 条评论,222人围观)

还没有评论,来说两句吧...

相关阅读

    相关 每天一道算法

    题目描述1 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一

    相关 每天进步一点

    当你有所提高有所进步时,你会觉的每天进步一点点也需要坚持        当你感觉到坚持每天进步一点点也不是那么容易的时候,恭喜你你已经进步了,我们都曾经混过日子在不知不