- 博客(925)
- 资源 (19)
- 收藏
- 关注
原创 LeetCode---40.组合总和II(在同一层中,有数字相同时,只选择第一个数字)
【代码】LeetCode---40.组合总和II(在同一层中,有数字相同时,只选择第一个数字)
2024-05-07 15:28:52 226
原创 LeetCode---47.全排列II(固定某位元素时,保证“每种元素只在此位固定一次”,即遇到重复元素时不交换,直接跳过)
为了排除这些重复方案,需在固定某位元素时,保证“每种元素只在此位固定一次”,即遇到重复元素时不交换,直接跳过,从而将生成重复排列的搜索分支进行“剪枝”
2024-05-07 14:35:13 43
原创 LeetCode---51.N皇后(从左上到右下方向,行下标与列下标之差相等 从右上到左下方向,行下标与列下标之和相等)
【代码】LeetCode---51.N皇后(从左上到右下方向,行下标与列下标之差相等 从右上到左下方向,行下标与列下标之和相等)
2024-05-07 11:14:34 192
原创 LeetCode---260.只出现一次的数字III(防止溢出(负数比正数多表示一位数) 求出二进制中最后一位1表示的数字)
【代码】LeetCode---260.只出现一次的数字III(防止溢出(负数比正数多表示一位数) 求出二进制中最后一位1表示的数字)
2024-05-06 21:08:18 224
原创 C++---max()函数编译器无法确定使用哪个重载版本的 max() 函数
为了解决这个问题,你可以显式地将参数转换为相同的类型,或者使用一种类型来声明变量。函数,并且编译器无法确定使用哪个重载版本的。函数,这导致编译器无法确定使用哪个版本的。这个错误提示表明在你的代码中调用了。在你的代码中,你可能使用了。声明为相同类型,或者使用。在这个例子中,我们将。函数期望的参数类型。
2024-05-03 17:31:29 218
原创 LeetCode---453.最小操作次数使数组元素相等(其他n-1个元素加一,等同与最大值减一)
【代码】LeetCode---453.最小操作次数使数组元素相等(其他n-1个元素加一,等同与最大值减一)
2024-04-30 13:30:55 113 2
原创 C++---172.阶乘后的零(求5的个数)
类型存储布尔值时,多个布尔值可能会被存储在同一个缓存行中,这样在访问布尔值时,会因为缓存的预取和缓存命中率的提高而更快。类型,每个布尔值会占用一个字节,可能会导致更多的缓存行被加载,从而增加缓存的不命中率,降低效率。类型来存储布尔值可能会更快,因为它可以更好地利用内存,提高内存访问效率和 CPU 缓存的命中率。:内存是按照字节来寻址的,因此即使你只需要一个比特的数据,也需要读取整个字节。中,这样可以更好地利用内存,减少内存访问的次数,提高效率。类型应该是存储布尔值的最佳选择,但在实际情况下,使用。
2024-04-29 17:12:16 308 2
原创 vector用int类型比用bool类型更快(但同时会增加内存的消耗)
类型存储布尔值时,多个布尔值可能会被存储在同一个缓存行中,这样在访问布尔值时,会因为缓存的预取和缓存命中率的提高而更快。类型,每个布尔值会占用一个字节,可能会导致更多的缓存行被加载,从而增加缓存的不命中率,降低效率。类型来存储布尔值可能会更快,因为它可以更好地利用内存,提高内存访问效率和 CPU 缓存的命中率。:内存是按照字节来寻址的,因此即使你只需要一个比特的数据,也需要读取整个字节。中,这样可以更好地利用内存,减少内存访问的次数,提高效率。类型应该是存储布尔值的最佳选择,但在实际情况下,使用。
2024-04-28 21:55:12 213
原创 LeetCode---3.无重复字符的最长子串(滑动窗口,用set适合首部删除、尾部插入和查找操作)
【代码】LeetCode---3.无重复字符的最长子串(滑动窗口,用set适合首部删除、尾部插入和查找操作)
2024-04-27 18:06:50 124 2
原创 LeetCode---647.回文子串(把奇数和偶数统一起来)
在实现的时候,我们需要处理一个问题,即如何有序地枚举所有可能的回文中心,我们需要考虑回文长度是奇数和回文长度是偶数的两种情况。如果回文长度是奇数,那么回文中心是一个字符;如果回文长度是偶数,那么中心是两个字符。当然你可以做两次循环来分别枚举奇数长度和偶数长度的回文,但是我们也可以用一个循环搞定。
2024-04-27 15:32:58 161 1
原创 C++---vector初始赋值时的常见错误(没有初始化就直接访问里面的元素)
在 unordered_map 中,如果键不存在时,使用 [] 运算符将会创建一个新的键值对,并使用默认的值初始化它。在你的代码中,你试图使用 [] 运算符为 mp 中的 vector 元素赋值,但是这样的使用方式是错误的。你应该先检查键是否存在,然后再进行赋值操作。或者你可以使用 mp[nums[i]] = {i, i, 1};的方式来初始化元素的信息。
2024-04-24 16:30:35 245
原创 C++---vector进行初始化赋值时常见的错误
时,可能会导致意外的结果,因为这样做会触发元素的复制操作,可能造成不必要的开销。的某个元素之前,未对其进行初始化,会导致未定义的行为。边界的元素时,会导致越界访问错误。为空时,尝试访问元素会导致错误。范围的位置,会导致未定义的行为。:在使用迭代器进行遍历或者操作。时,如果迭代器指向了超出。
2024-04-24 16:29:39 93
原创 C++---迭代器的稳定性
一般来说,对于大多数容器,插入和删除操作可能会使得指向元素的迭代器失效,而其他操作则不会影响迭代器的有效性。总的来说,为了确保迭代器的稳定性,应该在进行插入和删除操作后小心地处理迭代器。最安全的做法是在修改容器的同时更新迭代器,或者在修改容器之前将需要修改的元素的迭代器保存起来。的开头和末尾的插入和删除操作不会使迭代器失效,但在中间插入或删除元素可能会使迭代器失效。的插入和删除操作不会使现有迭代器失效,因为它们不涉及元素的移动或重新分配内存。中的插入和删除操作可能会导致重新哈希,从而使迭代器失效。
2024-04-24 11:47:13 100
原创 set与unordered_set的具体区别和联系(map同理)
都是 C++ 标准模板库(STL)中的关联容器,用于存储不重复的元素。如果需要有序存储且查找性能要求不高,或者需要保证迭代器稳定性,则可以选择。如果对元素顺序没有特殊要求,但需要较快的查找性能和较少的内存占用,则可以选择。
2024-04-23 17:12:48 698
原创 C++---23.合并k哥升序链表(把多个链表放在一个优先队列中)(优先队列的最后一个参数VSsort的最后一个参数)
【代码】C++---23.合并k哥升序链表(把多个链表放在一个优先队列中)(优先队列的最后一个参数VSsort的最后一个参数)
2024-04-23 15:14:06 180
原创 C++---46.全排列(如果i=level+1则当前的结果没有被保存)(回溯的是交换的位置)
【代码】C++---46.全排列(如果i=level+1则当前的结果没有被保存)
2024-04-22 21:54:38 335
原创 C++---769.最多能完成排序的块(数组下标和当前最大值的关系)
【代码】C++---769.最多能完成排序的块(数组下标和当前最大值的关系)
2024-04-22 10:39:38 279
原创 C++---448.找到所有数组中消失的数字(O(n)的时间复杂度)(巧妙利用数组自身的特性)
【代码】C++---448.找到所有数组中消失的数字(O(n)的时间复杂度)(巧妙利用数组自身的特性)
2024-04-21 20:40:16 136
原创 C++---对map中的value进行排序
中的值进行排序,排序函数指定为 lambda 表达式,以便按值排序。最后,我们打印排序后的结果。中的键值对结构,并且可以使用标准库提供的排序函数来排序。中,并对该向量进行排序。这样做的好处是可以保留。在这个示例中,我们首先创建了一个示例。,然后将其中的键值对复制到一个新的。以下是一个示例代码,演示了如何对。中的值进行排序,您可以将。中的键值对复制到一个新的。
2024-04-20 21:22:13 189
原创 C++---less与greater在排序和大根堆小根堆中应用的区别
在C++中,大根堆和小根堆的实现可以使用标准库中的,它提供了堆的常见操作,包括插入元素、获取顶部元素、删除顶部元素等。默认情况下,是大根堆,如果需要小根堆,则可以通过传入比较函数实现。以下是一个示例代码,演示了如何使用在这个示例中,我们首先创建了一个大根堆maxHeap和一个小根堆minHeap,并向它们中插入一些元素。然后,我们分别使用top()函数获取堆顶元素(最大值或最小值),使用pop()函数删除堆顶元素,并再次使用top()函数检查删除后的堆顶元素。
2024-04-19 18:04:59 189
Java学习必要的软件包
2020-09-26
GUI中的AWT,SWING
2020-09-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人