1.8 STL、位运算、常用库函数
文章平均质量分 50
stl、库函数
张学恒
这个作者很懒,什么都没留下…
展开
-
862. 三元组排序-语法课最后一题(DAY 31)
如果用printf来输出string的话 需要用 .c_str()语法课结束了!向算法前进!原创 2022-04-10 12:14:52 · 115 阅读 · 0 评论 -
26. 二进制中1的个数(DAY 30)
n >> k&1原创 2022-04-10 11:44:22 · 286 阅读 · 0 评论 -
75. 和为S的两个数字(DAY 31)
文章目录原题题目代码实现解题思路原题题目代码实现class Solution {public: vector<int> findNumbersWithSum(vector<int>& nums, int target) { unordered_set<int> s; for(auto x : nums) { if(s.count(target-x))retu原创 2022-04-10 11:41:29 · 188 阅读 · 0 评论 -
定义的大集合
文章目录1.哈希表2.迭代器3.范围遍历 auto a : b4.数组遍历5.链表遍历1.哈希表unordered_set s;2.迭代器vector<int> s;3.范围遍历 auto a : bfor(auto a: b)4.数组遍历for(int i=0;i<n;i++) cin >> a[i];5.链表遍历vector<int>res;for(auto p=head; p; p=p->next) res.push_back原创 2022-04-09 17:50:16 · 627 阅读 · 0 评论 -
53. 最小的k个数(DAY 30)
文章目录原题题目![在这里插入图片描述](https://img-blog.csdnimg.cn/21690b093c024cbeb4714e9a61833b0e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5byg5a2m5oGS,size_20,color_FFFFFF,t_70,g_se,x_16)代码实现原题题目代码实现class Solution {public: vect原创 2022-04-09 17:15:56 · 58 阅读 · 0 评论 -
20. 用两个栈实现队列 栈的使用(DAY 30)
文章目录原题题目代码实现原题题目代码实现class MyQueue {public: /** Initialize your data structure here. */ stack<int> s1,s2; MyQueue() { } /** Push element x to the back of queue. */ void push(int x) { s1.push(x);原创 2022-04-09 16:56:22 · 172 阅读 · 0 评论 -
17. 从尾到头打印链表(遍历链表)(DAY 30)
文章目录原题题目代码实现原题题目遍历链表和遍历一个数组差不多,只不过语法上有些差距遍历链表:for(auto p=head;p;p=p->next) p.push_back(p->val);p=链表的头,p不为0时,压栈,也就是push_back(p->val) 把p的值压入,存入链表中。 p=p->next p等于p的next。代码实现/** * Definition for singly-linked list. * struct ListNode { *原创 2022-04-09 16:23:32 · 1198 阅读 · 0 评论 -
1.8 STL、位运算、常用库函数lower_bound(DAY 30)
文章目录1:lower_bound 函数 二分(1)定义:找到这个区间当中第一个大于等于x的位置的值(2) 返回4试试(3)返回7就越界了,和我上一篇文章实验的错误一样(4)原因分析:(5)通过代码可以看出来,返回的值是在数组的外面2:upper_bound(1)a也可以是vectorlower_bound upper_bound就是二分的函数所有容器除了队列之外都能遍历1:lower_bound 函数 二分返回的是一个迭代器,在数组里面就是返回一个指针。(1)定义:找到这个区间当中第一个大于等于原创 2022-04-09 12:42:15 · 191 阅读 · 0 评论 -
数组越界(DAY 30)
文章目录1:引例1:2:数组越界原因:错误2:总结:1:引例1:推荐文章1推荐文章22:数组越界原因:可以看到,我们reverse的a+6 超出了定义的数组的长度5 ,就出现了一个相对来说很大的数字,32767 这是多少? 2的15次方等于32768 32767就等于2^15 -1 为什么减去1? 在计算机组成原理中,二进制数的范围就是-2的15次方到 +2的十五次方-1。因为中间有一个0。从这里我们又可以知道,为什么是15次方? 看来在该编译器中,数组的产长度是 4 个4位原创 2022-04-09 15:06:29 · 672 阅读 · 0 评论 -
sort的用法2:排结构体(DAY 30)
文章目录1:sort排结构体2:在结构体里面重载小于号看作是当前元素和t比较的时候。运算符重载一般都是大于和小于,很少用等于3:传参1:sort排结构体#include<iostream>#include<algorithm>#include<vector>#include<ctime>using namespace std;struct Rec { int x,y; }a[5];bool cmp原创 2022-04-09 10:05:27 · 750 阅读 · 0 评论 -
1.8 STL、位运算、常用库函数(DAY 29)
主要记录了vector容器中的一些简单应用。原创 2022-04-08 15:39:11 · 569 阅读 · 0 评论 -
67. 数字在排序数组中出现的次数(auto : 范围遍历)(DAY 30)
文章目录原题题目代码实现原题题目考察对vector的遍历是否熟悉,遍历一下数组,依次判断一下k是否等于数组中的元素就行了。我们采用范围遍历。for(auto a : nums)范围遍历要比我们用循环变量i来遍历,效率要高一点。所以尽量用范围遍历。代码实现class Solution {public: int getNumberOfK(vector<int>& nums , int k) { int cnt=0; for(auto原创 2022-04-09 15:10:15 · 139 阅读 · 0 评论 -
32. 调整数组顺序使奇数位于偶数前面——类似快排思想(DAY 30)
文章目录原题题目代码实现原题题目代码实现class Solution {public: void reOrderArray(vector<int> &array) { int i=0,j=array.size()-1; while(i<j) { while(i<j&& array[i]%2) i++; while( i原创 2022-04-09 16:06:01 · 74 阅读 · 0 评论 -
68. 0到n-1中缺失的数字(二分方法的集合)(erase函数)(DAY 30)
文章目录原题题目代码实现解题思路:原题题目代码实现class Solution {public: int getMissingNumber(vector<int>& nums) { unordered_set<int> S; for(int i=0;i<=nums.size();i++) S.insert(i); for(auto x : nums) S.erase(x);原创 2022-04-09 15:29:57 · 159 阅读 · 0 评论