顺序表vector--------练习题3题解

前言

今日晴,阳光普照大地,感觉暖暖的,叶子有黄色的、红色的、橘色的、绿色的,有着秋天独有的色彩,伴随着清爽的秋风和暖暖的日光,我做了今天的第一道题目,现在我们一起来看一下。

代码

cpp 复制代码
class Solution {
public:
    int differenceOfSum(vector<int>& nums) {
        int sum1 = 0;//元素和
        int sum2 = 0;//数位和
        for(int i=0;i<nums.size();i++){
            if(nums[i]>=10){
                sum1+=nums[i];
                while(nums[i]){
                    sum2+=nums[i]%10;
                    nums[i]/=10;
                }
                // int tmp = 1;
                // int num = nums[i];
                // while(num>0){
                //     num/=10;
                //     tmp*=10;
                // }
                // while(tmp>0){
                //     sum2+=nums[i]/tmp;
                //     nums[i]%=tmp;
                //     tmp/=10;
                // }
            }
        }
        return abs(sum1-sum2);//这里把fabs改成abs更保险
    }
};

反思

1.考察的知识点:顺序表vector

2.踩的坑:

1.我第一次做的时候企图构造一个函数,然后设法在这个differenceOfSum成员函数中调用这个函数,实现求数位和的功能,但我最终失败了,不知道为什么;

2.紧接着我第二次老老实实的做,把循环语句全部放到成员函数里面,也算是通过了。

3.可以优化的地方:

1.可以不用tmp这个中间量,直接一个while循环就可以,这样更简单;

2.返回绝对值时用的函数可以用abs,它相比fabs更加全能,fabs仅支持浮点数的绝对值,abs则支持浮点数和整数。

相关推荐
CSharp精选营19 小时前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
BadBadBad__AK2 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境2 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境2 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴3 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
刘马想放假4 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠5 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
卷无止境5 天前
C++ 的Eigen 库全解析
c++
卷无止境5 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端