
C++
keq_keq
fighting
展开
-
小 Q 的歌单
【 题目描述】小 Q 有 X 首长度为 A 的不同的歌和 Y 首长度为 B 的不同的歌,现在小 Q 想用这些歌组成一个总长度正好为 K 的歌单,每首歌最多只能在歌单中出现一次,在不考虑歌单内歌曲的先后顺序的情况下,请问有多少种组成歌单的方法。输入描述:每个输入包含一个测试用例。每个测试用例的第一行包含一个整数,表示歌单的总长度 K(1<=K<=1000)。接下来...原创 2019-03-13 22:24:32 · 202 阅读 · 0 评论 -
C++简单链表逆置和有序链表实现
今天听说同学面试问了链表逆置,于是久违地敲了下代码。。。这里逆置用的是插头法,网上资料也很多,大家可以去找找有图解的。算法思想将需要逆置的链表的头去掉!也就是说,我们可以用一个辅助链表(p)去指向当前head->next节点。于是我们暂时保存了除head以外的链表,然后将表头割裂!head->next = NULL;并且将其赋值给另一个辅助链表(q)。做完...原创 2019-03-29 20:10:00 · 372 阅读 · 0 评论 -
vector数组基本用法
存储&访问vector<vector<int> > matrix; for(int i=0;i<3;i++){ vector<int> t;// vector不涉及指针的操作可以自己进行GC for(int j=0;j<4;j++){ t.push_back(i*4+j); } matrix.push_bac...原创 2019-04-12 00:37:41 · 1782 阅读 · 0 评论 -
set
Set知多少?set,翻译为集合,是一个内部自动有序且不包含重复元素的容器,但是与vector不同,它其中的元素只能通过迭代器访问。C++中set是以红黑树作为底层实现的。set最主要的作用是自动去重并按升序排序,因此碰到需要去重,但是却不方便直接开数组的情况,可以尝试用set解决。此处引入一个链表查环的案例:#include<iostream>#include...原创 2019-04-03 19:06:56 · 150 阅读 · 0 评论 -
排列与组合C++代码实现
组合数:思路:采取递归遍历的方式,比如对于字符串abcd,对每一个当前字符进行选取或者不选取的操作。递归终止条件是判断选择字符个数已经达到m, 即C(n,m)。#include<iostream>#include<cstring>#include<cstdlib>#include<algorithm>#include<vect...原创 2019-05-02 22:22:37 · 1039 阅读 · 0 评论 -
回溯法求矩阵中的路径
挂一下剑指offer的这道题:请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵...原创 2019-05-25 23:56:32 · 324 阅读 · 0 评论 -
快排以及Partition算法寻找第k元素
快速排序算法思想:采用分治法(1)每轮排序选取一个轴值,将小于轴值的值调整到轴值左边,大于轴值的值调整到轴值右边(2)对左右两部分继续进行(1)操作算法实现:选取轴值调整元素位置部分写成一个partition算法,也就是分块函数,这个函数最终可以返回一个轴值在数组中的位置,于是这个算法可以衍生到求kth元素。#include<iostream>#in...原创 2019-09-20 07:29:33 · 553 阅读 · 0 评论