7.整数反转(简单题)

boomck 2019-09-28 PM 39℃ 0条

坑点:

  1. 反转后的值要在[−231, 231 − 1]范围内
  2. 反转后0开头的数值
  3. 负数

思路:

看到题目的第一眼就是要注意负数,然后开始思考如何反转,想到的方法是将整数值一位一位用余数的方法取出来,放到数组中,然后通过数组的长度来计算每一位乘积的倍数,最后累加的结果在对其进行大小判断是否超出范围,并判断其是正是负。

代码:

PHP:

class Solution {
    /**
     * @param Integer $x
     * @return Integer
     */
    function reverse($x) {
        $num = abs($x);
        $arr = [];
        while($num>=10){
            $a = $num%10;
            array_push($arr,$a);
            $num = (int)$num/10;
        }
        array_push($arr,(int)$num);
        $length = sizeof($arr);
        $res = 0;
        for($i = 0;$i < $length;$i++){
            $res = $res + $arr[$i] * pow(10,$length-$i-1);
        }
        if($x < 0){
            if($res <= pow(2,31)){
                return -$res;
            } else {
                return 0;
            }
        }else{
            if($res <= pow(2,31)-1){
                return $res;
            } else {
                return 0;
            }
        }
    }
}

GO:

func twoSum(nums []int, target int) []int {
    size := len(nums);
    for i := 0 ; i < size ; i++ {
        for j := 0 ; j < size ; j++  {
            if i == j {
                continue
            }
            if nums[i]+nums[j] == target {
                return []int{i,j}
            }
        }
    }
    return nil
}
标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~