C++ STL
hgj 每天快乐学习
golang, 服务端开发. c++, 算法, 数学, 图像
展开
-
常用c++
std::reverse() function of STL in header file algorithm// CPP program to illustrate // std::reverse() function of STL #include<iostream> #include<algorithm> #include<vector> us...原创 2020-03-03 15:58:36 · 136 阅读 · 0 评论 -
存在重复元素 II
给定一个整数数组和一个整数 k,判断数组中是否存在两个不同的索引 i 和 j,使得 nums [i] = nums [j],并且 i 和 j 的差的绝对值最大为 k。solution穷举法[线性搜索] 时间超限class Solution {public: bool containsNearbyDuplicate(vector<int>& nums, int k...原创 2020-02-27 17:46:34 · 147 阅读 · 1 评论 -
环形链表
给定一个链表,判断链表中是否有环。为了表示给定链表中的环,我们使用整数 pos 来表示链表尾连接到链表中的位置(索引从 0 开始)。 如果 pos 是 -1,则在该链表中没有环。solution用 O(1)(即,常量)内存解决此问题哈希表/** * Definition for singly-linked list. * struct ListNode { * int va...原创 2020-02-20 21:44:18 · 75 阅读 · 0 评论 -
无重复字符的最长子串
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。solutionmyclass Solution {public: int lengthOfLongestSubstring(string s) { int ret = 1, me = 1; int sz = s.size(); if(sz == 0) return 0;...原创 2020-02-20 11:34:18 · 81 阅读 · 0 评论 -
字符串的排列
题目输入一个字符串,按字典序打印出该字符串中字符的所有排列。例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba。解析思路:递归法,问题转换为先固定第一个字符,求剩余字符的排列;求剩余字符排列时跟原问题一样。(1) 遍历出所有可能出现在第一个位置的字符(即:依次将第一个字符同后面所有字符交换);(2) 固定第一个字符,求后面...原创 2020-02-18 17:58:45 · 111 阅读 · 0 评论 -
第一个只出现一次的字符
题目在一个字符串(0<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置, 如果没有则返回 -1(需要区分大小写).solutionmyclass Solution {public: int FirstNotRepeatingChar(string str) { unsigned sz = str.size();...原创 2020-02-17 16:55:54 · 72 阅读 · 0 评论 -
调整数组顺序使奇数位于偶数前面
题目输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。class Solution {public: void reOrderArray(vector<int> &array) { sort(array.begin(), array...原创 2020-02-16 20:43:10 · 86 阅读 · 0 评论 -
温故知新
swap(a,b); 交换两个值Before C++11, this function was defined in header . 从c++11开始, it’s defined in header .reverse(num.begin(),num.end()); 翻转原创 2020-02-16 17:22:54 · 98 阅读 · 0 评论 -
next_permutation
题目网址实现函数next permutation(下一个排列):将排列中的数字重新排列成字典序中的下一个更大的排列。将排列中的数字重新排列成字典序中的下一个更大的排列。如果不存在这样的排列,则将其排列为字典序最小的排列(升序排列)需要使用原地算法来解决这个问题,不能申请额外的内存空间下面有机组样例,左边是输入的数据,右边是输出的答案1,2,3→1,3,23,2,1→1,2,31,1,...原创 2020-02-16 17:02:03 · 140 阅读 · 0 评论 -
天仙配[心得: 学多点c++数据结构, STL]
题目描述今年的七夕异常的热闹,很多对新人都把结婚日子选在了那天。 于是,他们决定一起举办“天上地下姻缘一线牵”活动,在广场上举行集体婚礼。为了活跃气氛,司仪想出了一个很有意思的游戏:会场有n(1≤n≤10000)对新人,司仪在地上画出一排(共2n个)格子, 每个格子里都写着一个随机的整数Ai(1≤Ai≤10000)。游戏开始后,让新人们任意地站成一排。等他们都站好以后,司仪开始计算他们每个人...原创 2020-02-11 22:16:02 · 318 阅读 · 0 评论 -
最佳配对(新知识 : set容器插入为insert()方法)
题目描述给定两个长度为N的整型数组A和B。如果Ai==Bj则认为(i,j)为最佳配对。所有的最佳配对在满足以下条件的情况下组成最佳配对集合:A和B中的各个元素最多在集合中出现一次。例如,A =「5, 10, 11,12, 14」,B = 「8, 9 ,11, 11, 5」,配对集合为「(0,4),(2,2),(2,3)」,因为在集合A中索引2出现了两次,所以上面的配对集合不是最佳配对集合。你的任...原创 2020-02-11 21:52:35 · 485 阅读 · 0 评论 -
c++标准库的unique()实现去重用法以及原理详解
引论在写程序过程中, 我们经常遇到要对数组去掉重复值, 为避免浪费时间造轮子, 这里给出一个c++内置的的常用函数unique(). 这个函数只能对"相同元素在并邻在一块的"数组进行去重. 不能对相同元素七零八落地分布的一般数组进行去重, 可以对一般数组进行排序后再用unique()即可, 因为排好序的的序列里面相同元素一定存储在连续的地址块. 提醒, 该函数实现去重功能并不是把相同元素删除,只...原创 2020-02-01 19:23:37 · 3208 阅读 · 3 评论