年度归档: 2024 年

55 篇文章

LeetCode hot100@数组
53. 最大子数组和❌ 贪心:不能让“连续和”为负数的时候加上下一个元素(因为直接把前面这一堆和为负数的子串抛弃就回来,后面怎么也会比加上个负数更大),而不是不让“连续和”加上一个负数(加上负数也没事,只要整体还算大) class Solution { public: int maxSubArray(vector<int>& n…
LeetCode hot100@二分查找
35. 搜索插入位置✅ 二分模板题 class Solution { public: int searchInsert(vector<int>& nums, int target) { int left = 0, right = nums.size() - 1, mid; while(left <= right) { mi…
LeetCode hot100@双指针
双指针法:通过两个指针在一个for循环下完成两个for循环的工作,一般是将O(n^2)的时间复杂度,降为O(n) 283. 移动零✅ 简单模拟 不改变数组内元素的相对位置 复杂度O(n) class Solution { public: void moveZeroes(vector<int>& nums) { int slow …
C++11常用新特性
https://zhuanlan.zhihu.com/p/139515439 范围基for循环 范围基for循环(Range-based for loop)是 C++11 引入的一种简化的循环结构,用于遍历容器(如数组、向量、集合、映射等)中的元素 基本语法: for (declaration : container) { // 对每个元素执行的操…
C++知识速记
面向对象 在C++中,创建对象的两种方式有本质的不同,分别代表了在栈上和在堆上创建对象 1. SpeechManager* sm = new SpeechManager(); 堆上创建对象(动态分配内存): 使用new运算符,意味着SpeechManager对象是在堆上分配的 返回类型是SpeechManager*,即指向SpeechManager…
C++语法速查
map 新旧两种方式遍历map unordered_map<char, int> mp; for(const auto &mypair : mp) { cout << mypair.first << " " << mypair.second << endl; } 或者 for(co…