摘要:一.题目大意 给定一个数组A,对于数组A中的两个数字,如果排在前面的一个数字大于(必须大于,等于不算)后面的数字,则这两个数字组成一个逆序对。要求输出数组A中的逆序对的总数。例如,对于数组{7,5,6,4},一共存在5个逆序对,分别是(7,5)、(7,6)、(7,4)、(5,4)、(6,4)。 注:
阅读全文
随笔分类 - c/c++
摘要:一.总述 unique函数属于STL中比较常用函数,它的功能是元素去重。即”删除”序列中所有相邻的重复元素(只保留一个)。此处的删除,并不是真的删除,而是指重复元素的位置被不重复的元素给占领了(详细情况,下面会讲)。由于它”删除”的是相邻的重复元素,所以在使用unique函数之前,一般都会将目标序列
阅读全文
摘要:erase()是STL提供的容器中比较常用的方法之一,它的功能是删除容器中的某些元素,其中它的函数原型如下: 1.有两个参数,且参数类型都是size_t型: 功能是:删除容器中从pos位置开始的n个元素。返回值是经过删除操作后的容器。 示例: 结果: (注:第一种erase用法是string容器所特
阅读全文
摘要:对于简易的哈希表的实现,在刷题过程中用的最多的就是利用一个数组作为一个哈希表,其中数组的下标作为“键”,数组中的内容作为“值”。 1.一个比较常见的情况,是目标字符串只包含小写的字母。 这种情况下,只需要建立一个大小为26的数组,并且以str[i] - 'a'作为哈表中的“键”,例如: 2.另一个更
阅读全文
摘要:我们都知道,sort函数是C++标准库<algorithm>中的一个库函数。它的功能是对数组/容器中的元素进行排序。用法示例如下: 一.对数组进行排序 示例: 这种情况下(即默认情况下),实际上是对数组a进行升序排序。我们也可以修改sort函数中的第三个参数内容,来实现自定义排序。 示例: 通过自定
阅读全文
摘要:一. 数字 转 char*型 1.sprintf函数(适合C和C++) 示例: sprintf()函数的功能非常强大,此处只是将int型数字转换成字符串,更多的介绍可见:https://blog.csdn.net/sjf331/article/details/339254 二.数字 转 string
阅读全文
摘要:C++中函数的形参如果为数组的话,那么进行实参传递时,实参实际上换转化成指针。参考下面的例子: 运行结果为: 通过上面的结果可知, 1.数组a的本质就可以看成是一种指向数组首地址的指针。 2.在实参传递的过程中,传给fun函数的实际上是一个指针,这个指针存储的地址与a的首地址相同,所以改变这个指针指
阅读全文
摘要:题目:对于两个有序链表,将它们合并成一个有序链表。 这种题目一看就是利用归并排序的思想,实现方式有递归和非递归两种方式。 方法1(非递归): 代码如下: (1)非递归的方式时间复杂度为O(n),空间复杂度为O(1)。 (2)尤其重要的一点是,在做这道题目时,一定要搞清楚最终返回的合并后的链表是一个新
阅读全文
摘要:今天在刷《剑指offer》时,遇到了几个比较有意思的点,题目是面试题20,我写的代码如下: 这段代码,有两个点需要注意: 1.在函数isDIdit和函数isSignedDigit中,它们的形参实际上是指针的引用,即本质是个引用,不过这个引用是指针变量的引用。原书代码中采用的是二级指针,我嫌麻烦使用了
阅读全文
摘要:今天看到了一个关于printf()函数计算顺序的问题,首先看一个例子: 输出结果为: 这说明printf()函数在计算的时候顺序是从右往左的,但最后输出的顺序是从左往右的。所以遇到类似题目时,应该根据运算顺序和输出顺序灵活判断。
阅读全文
摘要:最近在温习指针的部分时发现了一个有趣的问题,先看以下程序: 当我把1.c运行后,发现输出结果是:567。此时编译器给出警告信息:返回值是局部变量的地址。 首先,我们知道操作系统给函数分配的内存空间都是在栈中,当函数调用结束后,操作系统就会回收其内存空间。当然,这个过程包括回收函数内部的局部变量(局部
阅读全文
摘要:最近在复习c语言的时候再次用到了malloc函数和free函数,此处着讲解一下自己对这两个函数的理解和认识。 一. malloc函数和free函数的基本概念和基本的用法 对于malloc函数: 1. 包含的头文件:<mallloc.h> 或者<stdlib.h> 2. 函数的原型:void *mal
阅读全文
摘要:实际上,迭代与递归都是属于循环的一种。简单地说,递归是重复调用函数自身实现循环。迭代是函数内某段代码实现循环,而迭代与普通循环的区别是:循环代码中参与运算的变量同时是保存结果的变量,当前保存的结果作为下一次循环计算的初始值。从以下两组代码中可以看出迭代与递归的区别:递归方法:int func(int...
阅读全文
摘要:自己在实现一个类strcpy函数时,发现一些小问题:首先,函数如下:char *str_n_cpy(char *dest,const char *src){ char *_temp = dest; assert(dest != NULL || src !=NULL); //...
阅读全文
摘要:今天写c时无意间用到了排序,便想着使用c语言标准库中提供的排序函数,即qsort函数(c++stl中提供了sort函数用于排序),首先是介绍qsort函数的一些基本用法(以下内容主要参考: http://www.cppblog.com/qywyh/articles/3405.html 七种qsort
阅读全文