练习1: 两个数之和,同一个元素在答案里不能重复出现
代码:
    let num1 = 0;
            let num2 = 0;
            for(let i = 0;i<nums.length;i++){
            num1= nums[i]
            for(let j = i+1;j<nums.length;j++){
            num2= nums[j]
            if(num1 + num2 == target){
            return [i,j]
            }
            }
            }
总结:使用for循环,循环两次,第二次循环把i改为j,j=i+1
练习2: 回文数
解题思路:既然回文数是数字反转以后还和之前的数字一样,那么可以判断反转过的数字是否和之前的一样,
是的话就是回文数,不是的话就不是回文数先把数字转化为字符串,解析成数组反转过以后再转化字符串,
然后把字符串在重新转化为数字。
代码:
    var isPalindrome = function(x) {
      // 数字转字符串
        if(x<0){
            return false
        }
      // 反转字符串
        var x2=parseInt(x.toString().split(‘’).reverse().join(‘’))
      // 判断反转后的字符串是否和原始字符串相等
      return x2 === x ? true : false
    };
    isPalindrome(121)
练习3: 罗马数字转整数
解题思路:
1.左边的罗马数字 > 右边的罗马数字时,罗马数 == 左边罗马数字对应的阿拉伯数字 + 右边罗马数字对应的阿拉伯数字
2.左边的罗马数字 < 右边的罗马数字时,罗马数 == 左边罗马数字对应的阿拉伯数字的反数即负数 + 右边罗马数字对应的阿拉伯数字
代码:
    var romanToInt = function(s) {
        let obj={
            I:1,
            V:5,
            X:10,
            L:50,
            C:100,
            D:500,
            M:1000,
        }
        let num=0
        for(let i = 0; i < s.length; i++){
            if(obj[s[i]] < obj[s[i+1]]){
                num -= obj[s[i]]
            }else{
                num += obj[s[i]]
            }
        }
        return num
    };
    romanToInt (‘III’)
赋值运算符:-=、+=
x+=y,相当于x=x+y
x-=y,相当于x=x-y