美文网首页
领扣----js算法练习

领扣----js算法练习

作者: 行走的Radish | 来源:发表于2018-12-11 17:09 被阅读0次

此篇是在LeetCod的上的练习,本人很菜,如果有更好的解决方法或者错误的地方,欢迎指出,我们共同学习~~~~~

1、给定一个整数数组nums和一个目标值target,请你在该数组中找出和为目标值的那两个整数,并返回他们的数组下标。

你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。

示例:

给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]

/*

*第一是审题,开始的时候想法是,循环nums,如果target-nums[i]的值是不是在nums中,如果存在,那么就判断存在的那个值加上nums[i]是不是等于target

*但是遇到了一个问题,当数组是3,2,4,target是6的时候,i=0,那么6-3=3,就会重复的获取了i=0,3的值,目前没想出解决方案

*这个完成的是借鉴别人的,双重循环,第二个循环是i+1,也就是第二个值,这样就避免了一重循环时,又重复使用nums[i]中的情况

*然后判断target-nums[i]是不是等于nums[j]

*/

var twoSum = function(nums, target) {

    var arr=[]

    for(var i=0; i<nums.length; i++){

      for(var j=i+1; j<nums.length; j++){

          if(target-nums[i] == nums[j]){

              arr.push(i)

              arr.push(j)

              return arr

          }

      }

}

};

twoSum([2, 7, 11, 15], 9)

2、给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

/**

* 如果转成字符串,那么负值要多出一位,所以要进行条件的设置

* 如果反转之后,大于了所在的范围,那么又要重新判断

*2的次方要怎么表达啊啊啊啊

*所以只能强硬的去把范围写出来!!!!耦合性太强,目前还没找到解决方法

*/

var reverse = function(x) {

    var str = String(x)

    if(str.charAt(0) === '-'){

        if(str.length > 11){ return 0}

        var new_str = str.slice(1, str.length)

        var fin_num = parseInt('-'+new_str.split('').reverse().join(''))

        return  fin_num < (-2147483648) ? 0 : fin_num

    }

    if(str.length > 10){ return 0}

    var num = parseInt(str.split('').reverse().join(''))

    return  num > 2147483648 ? 0 : num

};

reverse(1534236469)

3、判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

var isPalindrome = function(x) {

    var str = String(x)

    if(str.charAt(0) === '-') return false

    if(str.split('').reverse().join('') === str){

        return true

    }else{

        return false

    }

};

isPalindrome(10)

待续...............................

///////////////////////////////////////////////////////////////////////////////////////////////

相关文章

  • 领扣----js算法练习

    此篇是在LeetCod的上的练习,本人很菜,如果有更好的解决方法或者错误的地方,欢迎指出,我们共同学习~~~~~ ...

  • 领扣算法46:全排列

    回溯算法 第三方包的使用

  • 领扣:小孩分饼干、贪婪算法

    题目描述:每个孩子都有一个满足度 grid,每个饼干都有一个大小 size,只有饼干的大小大于等于一个孩子的满足度...

  • 仿写一个任意进制转任意进制方法

    本帖仅为日常算法练习总结,若有更好的算法欢迎留言分享。 1、先看下js原生方法 2、先准备一个工具方法将16、36...

  • 有用网站汇总

    有用网站汇总 CS相关教程 廖雪峰的官网莫烦的机器学习教程 编程练习 leetcode领扣 一些开源站点 Face...

  • JS作用域的练习

    Js作用域练习demo1 Js作用域练习demo2 JS作用域练习demo3 JS作用域练习demo4 JS作用域...

  • 领扣41

    给定一个未排序的整数数组,找出其中没有出现的最小的正整数。

  • JS设计一个算法,计算出n阶乘中尾部零的个数

    今天在领扣看到了一个算法题,题目是这样的: 乍一看感觉还是蛮简单的,但是实际操作起来却没那么容易,也看了网上有关...

  • 排序算法

    JS里排序算法的写法:

  • JS + Git 测试小练习

    作业链接 js 基础练习js 扩展练习(section-1 & section-2) 提交记录 练习收获 这次作...

网友评论

      本文标题:领扣----js算法练习

      本文链接:https://www.haomeiwen.com/subject/xueehqtx.html