摘要: 冒泡排序 基本思想:第一次循环将最大的元素放在arr[n-1],第二次循环将第二大的元素放在arr[n-2],最多需要n-1次循环 void bubble_sort(vector<int> &nums) { int n = nums.size(); bool swapped; for (int i 阅读全文
posted @ 2025-07-17 12:28 dengkang1122 阅读(3) 评论(0) 推荐(0)
摘要: x 的平方根 int mySqrt(int x) { if (x <= 1) return x; int left = 0, right = x; // 防止left+right溢出, left为0而不是1 int mid; while (left <= right) { mid = (left + 阅读全文
posted @ 2025-07-16 21:01 dengkang1122 阅读(7) 评论(0) 推荐(0)
摘要: 两数之和 II - 输入有序数组 vector<int> twoSum(vector<int>& numbers, int target) { int size = numbers.size(); int i = 0, j = size - 1; while (i < j) { if (number 阅读全文
posted @ 2025-07-15 18:49 dengkang1122 阅读(6) 评论(0) 推荐(0)
摘要: 分发饼干 贪心策略:给胃口最小的孩子分发尺寸最小的饼干。 int findContentChildren(vector<int>& g, vector<int>& s) { std::sort(g.begin(), g.end()); std::sort(s.begin(), s.end()); i 阅读全文
posted @ 2025-07-15 18:34 dengkang1122 阅读(8) 评论(0) 推荐(0)
摘要: 12.2 字符串比较 242 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。 // 解法1:排序后逐个比较字符 bool isAnagram(string s, s 阅读全文
posted @ 2024-08-10 09:16 dengkang1122 阅读(12) 评论(0) 推荐(0)
摘要: 3 调试 3.1 语法和语义错误 不符合C++语法的语句会产生语法错误(例如缺少分号/使用未声明变量/括号不匹配),编译器会捕捉语法错误 语法没错但是运行结果不对称为语义错误/逻辑错误(分母为0/使用未初始化变量) 现代编译器可以检测到一些常见的逻辑错误,例如使用一个未初始化的变量。但是大部分逻辑错 阅读全文
posted @ 2024-08-08 07:46 dengkang1122 阅读(28) 评论(0) 推荐(0)
摘要: 21 操作符重载 21.12 重载赋值运算符 拷贝构造器和拷贝赋值运算符的作用几乎相同,都是将一个对象复制到另一个对象。但是拷贝构造器初始化新的对象,而赋值运算符替换已有对象的内容 如果在拷贝前必须创建一个新对象,则使用拷贝构造器(包括按值传递和按值返回) 如果在拷贝前无需创建一个新对象,则使用赋值 阅读全文
posted @ 2024-07-22 22:23 dengkang1122 阅读(22) 评论(0) 推荐(0)
摘要: 20 函数 20.1 函数指针 函数和变量一样,也是在内存中被分配了一块地址。因此,函数指针就是一个保存函数的内存地址的变量 函数也是有类型的,例如foo()这个函数的类型就是返回整数且不带参数 int foo(){return 5;} <<操作符不知道如何输出函数指针(因为有无数种可能的函数指针) 阅读全文
posted @ 2024-07-22 22:22 dengkang1122 阅读(40) 评论(0) 推荐(0)
摘要: 14 类 14.9 构造器 当类有私有成员时,无法使用聚合初始化 构造器是一个特殊的成员函数,它在非聚合类的对象创建后自动调用 构造器不会创建对象:编译器在调用构造器之前就为对象分配了内存,然后在未初始化的对象上调用构造函数 构造器需要初始化对象的成员,因此不能为const const对象不能调用非 阅读全文
posted @ 2024-07-22 22:22 dengkang1122 阅读(28) 评论(0) 推荐(0)
摘要: 12 复合类型:引用和指针 12.1 复合数据类型介绍 函数也是一种复合数据类型 12.2 左值和右值 表达式除了可以产生值和副作用,还可以计算为对象或函数 C++中的所有表达式都有两个属性:类型和值类别 表达式的类型就是计算表达式得出的值、对象、函数的类型 表达式的类型必须在编译时可确定,否则类型 阅读全文
posted @ 2024-07-22 22:21 dengkang1122 阅读(23) 评论(0) 推荐(0)