练习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’)