
剑指offer——算法
文章平均质量分 50
算法解析及例题,很多是《剑指offer》中的讲解
IT8343
这个作者很懒,什么都没留下…
展开
-
C++多种解法求最大回文子串
最大回文字符串的几种解法原创 2023-02-07 15:49:08 · 2735 阅读 · 0 评论 -
贪心算法及经典例题
贪心算法(贪婪算法)及其范例原创 2023-02-03 11:13:32 · 1075 阅读 · 0 评论 -
数组中出现次数超过一半的数字
数组中出现次数超过一半的数字原创 2023-02-02 23:23:18 · 590 阅读 · 0 评论 -
(五)斐波那契数列的实现 && 程序运行时间统计
写一个函数,输入n,求斐波那契数列(Fibonacci)的第n项。延申题目:青蛙跳台阶的问题:一只青蛙一次跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个n级的太极总共有多少种跳法。当有0阶台阶时,有0种跳法。1 ******************************** 12 ******************************** 2当n大于2时,第一次跳有两种跳法,1、跳一阶。此时的跳法数目为后面的n-1阶跳法数目。2、跳两阶,此时的跳法数目为n-2阶跳法数目。所以原创 2021-02-19 16:30:38 · 1096 阅读 · 0 评论 -
(四)二维数组中的查找
在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。分析:二维数组如:1 2 8 92 4 9 124 7 10 136 8 11 15 我们可以从顶角开始,如从右上角开始:1、如果这个数等于9,就退出。2、...原创 2021-02-13 19:10:31 · 151 阅读 · 0 评论 -
(三)数组中的重复数字
题目:在一个长度为n的数组里的所有数字都在0~n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。这里的方式其实不局限于一两种,可以先排序然后再依次的进行比较。书中提供了一种比较简单的方式。注意这里不是要找出所有重复的数字,只要找到一个就行了。由于数组中的数字都是在0~n-1范围内的,如果数组中没有重复的数字,那么数组排序以后的数字 i 将出现在data[i]的位置。一边在重排数组,一边也在查找重复的数字,这样的.原创 2021-02-12 15:01:35 · 342 阅读 · 0 评论 -
(二)singleton单例模式——饿汉模式
饿汉式是典型的空间换时间,当类装载的时候就会创建类实例,不管你用不用,先创建出来,然后每次调用的时候,就不需要再判断了,节省了运行时间,调用效率高,不能延时加载。饿汉:不管用户用不用得到,它都会提前实例化对象等待用户调用——在单例类定义的时候就进行实例化。(本身就是线程安全的,如下例子)#include "../common.h"//final表示该类不可被继承//饿汉式class CMySingleton final{public: ~CMySingleton(); s原创 2021-02-09 03:03:45 · 273 阅读 · 0 评论 -
(二)singleton单例模式——懒汉模式
只能生成一个实例的类是实现了单例模式的类。singleton是唯一一个能够用短短几十行代码完整实现的模式。懒汉模式:故名思义,不到万不得已就不会去实例化类,也就是说在第一次用到类实例的时候才会去实例化。一、懒汉模式(有缺陷):#include "../common.h"//final表示该类不可被继承class CMySingleton final{public: ~CMySingleton(); static CMySingleton* getInstance(原创 2021-02-09 02:36:06 · 554 阅读 · 0 评论 -
(一)赋值运算符函数
注意点有四个:1、是否把返回值的类型声明为该类型的引用,并在函数结束前返回实例自身的引用。2、是否把传入的参数的类型声明为常量引用。(避免形参到实参调用拷贝构造函数)。3、是否释放自身已有的内存。4、判断传入的参数和当前的实例是不是同一个实例。common.h:#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#inc原创 2021-02-08 19:05:44 · 430 阅读 · 0 评论