ARTS_week2

A

Leetcode算法题(easy):
ARTS_week2_第1张图片
题目及示例
ARTS_week2_第2张图片
注意事项

思路:排除溢出 --> 利用数组分类解决;

本题的代码如下:

class Solution {
public:
    int reverse(int x){
        int num = x, len = 0;                           //测量整数长度
        if (num == 0) {
            len = 1;
        }
        else{
            while(num != 0){
                num = num/10;
                len = len + 1;
            }
        }


        int result_arr[len], result_num = 0;           //用于倒置整数的数组,输出的结果
        double temp = 0;                               //溢出限制
        
        if(x > 0 && x <= int(pow(2, 31)-1)){           //第一类,x>0,未溢出
            for(int i = 0; x > 0; i++){
                result_arr[i] = x%10;
                x = x/10;
            }
            for(int i = 0; i < len; i++){
                temp = temp + result_arr[i] * pow(10, (len - i - 1))+0.5;
                if(temp > pow(2, 31)-1){
                    return 0;
                }
                result_num = result_num + result_arr[i] * int(pow(10, (len - i - 1))+0.5);

            }
            return result_num;
        }
        
        
        else if(x < 0 && x > int(-1 * pow(2, 31))){      //第二类,x<0,未溢出
            x = x * (-1);
            for(int i = 0; x > 0; i++){
                result_arr[i] = x%10;
                x = x/10;
            }
            for(int i = 0; i < len; i++){
                temp = temp + result_arr[i] * pow(10, (len - i - 1))+0.5;
                if(temp > pow(2, 31)){
                    return 0;
                }
                result_num = result_num + result_arr[i] * int(pow(10, (len - i - 1))+0.5);
            }
            return result_num * (-1);
        }

        else{                                          //第三类,x=0或溢出
            return 0;
        }
    }
};

本题遇到的困难:

  1. 溢出问题的考虑在开始时被忽略;
  2. 中的pow(a, b)函数的错误使用:pow(a, b)返回的值一般为double型,当被化成int类型时取整,精度会丢失,值发生变化——很蠢的问题,坑了我好久。
  • pow(a, b)的使用:

double pow (double base , double exponent);
float pow (float base , float exponent);
long double pow (long double base, long double exponent);
double pow (Type1 base , Type2 exponent);


R

文章:
Why Naval Ravikant Thinks Remote Work Is The Future?
此文主要内容为对远程工作未来的一些思考和看法。
文章主要观点:

  1. 人与人之间的交流,可能会耗费大量的精力,有时会得不偿失。
  2. 讨论了关于公司对于远程工作开放的犹豫不决:对员工激励、管理等忧虑及原因。
  3. 论述了远程工作是未来趋势的优势和原因:经济,利于吸收各地人才,在一定程度上提高了员工的生活质量。
  4. 介绍了一些已经开展了远程工作的例子如加密公司等有开源项目的公司。
我的思考:至少在IT行业,远程工作会越来越符合行要的需求。除了一些有关开源项目的工作,对于其他一些项目的开发或其他工作来说,远程工作在不久的将来一定能够发展得足够成熟,以适应行业需求。

T

学了一下快速排序,晕了好一会儿。
网上各种搜了一番,找了个能看的懂的,好好地理解了一番:

  • 所谓快速排序,感觉上就是升级版的冒泡,从相邻的两个数的比较,变成了不相邻的两个数的比较。主要用的还是递归的思想,至于所谓的“标杆”,在我看来就是一种分类标准。
  • 大概流程:选择 “标杆”(一般为第一个数a[0]),然后将数组列表(a[N])从两头开始比较(先右后左),右至左 <--j 寻找小于标杆的数(a[j] < a[0]),左至右 i--> 寻找大于 “标杆” 的数(a[i] > a[j]),然后交换位置(a[i], a[j] = a[j], a[i]);重复以上过程,直到左右两个方向达到同一个数字处(i = j),再交换其与 “标杆” 的位置(a[0], a[i] = a[i], a[0]);递归
    快速排序——详解

S

本周的学习之后,特别是在敲了一些代码之后,感觉自己对于C++函数的库的一些函数的使用非常不了解,于是去找cplusplus上找了一番答案。觉得以后还是应该多多利用好此类网站。


你可能感兴趣的:(ARTS_week2)