自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rubik_xie

个人博客

  • 博客(85)
  • 收藏
  • 关注

原创 2021-10-13高精度开n次方

具体原理:开平方#include <iostream>#include <vector>using namespace std;/** @brief 辅助函数,二分法求n次幂 @param x 底数 @param n 指数 @return 结果 */int getPow(int x, int n) { if (n == 1) { return x; } else if (n % 2) { int t = .

2021-10-13 20:04:50 201

原创 C++高精度开平方

#include <iostream>#include <vector>using namespace std;/* 主要思路:(x + 1)^2 = x^2 + 2x + 1 同样的的道理 (x + 10^i) = x^2 + 2*(10^i)*x + 10^(2i) 于是可以循环每次增加0.1,直到超界,确定第一个小数位 每次增加0.01,,确定第二个小数位 每次增加10^(-n),确定第n位小数 *//** * @brief 求一个数开方的正数部分

2021-10-13 13:43:37 1471

原创 Object-C多态和C++多态的简单对比

需求:两个有序集做并集,但是有序集有两种,一种是基于数组的有序集,一个是基于链表的有序集。希望通过多态,可以让ArraySet和ArraySet求并集,ListSet和ListSet求并集,ListSet和ArraySet求并集。分析:不管是基于数组的还是链表的有序集,都是可以一样的操作, 两个游标指针,在两个集合上遍历,基本就是如下的格式。void getUnion(Set ...

2020-03-06 14:44:15 251

原创 工厂模式,工厂方法模式,抽象工厂模式

//工厂模式:这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。//在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象////例子://小时候,妈妈跟小朋友说你好好读书,你考上大学,我给你买一个拍照设备。当时妈妈就思考小朋友长大了以后依据小朋友的意愿,给他买一个相机或者DV.////于是就有了//#include...

2020-02-25 14:48:07 148

原创 观察者模式

/* 观察者模式:观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系, 使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。 举个例子: 一家人捉迷藏,小朋友数数从1到100之后,开始找爸爸妈妈。此时的需求是爸爸妈妈随时知道小朋友数到了多少,以便选择躲藏的地方。 简单做法如下:class person{ ...

2020-02-25 02:02:24 205

原创 【左神算法】基础班第三课(二)——矩阵打印

顺时针顺序打印记录圈数, 然后一圈一圈的打印。注意最后一圈只有一行或者一列的情况#include <iostream>#include <algorithm>#include <vector>#include <set>#include <unordered_map>#include <list>usin...

2019-08-05 15:53:40 124

原创 【算法练习】剑指offer——有序矩阵查找

思路一:通过mid_i, mid_j, 将矩阵划分为4份,矩阵划分为4份。根据大小情况丢弃左上或者右下角。时间复杂度log(m*n) / log(4/3), m, n为矩阵长宽#include <iostream>#include <vector>using namespace std;struct point{ int i, j; point...

2019-07-30 19:22:51 249

原创 【算法练习】含重复字符的全排列

思路:不重复字符的字符串,对字符进行遍历, 回溯解决。结果又N!种情况含有重复的字符串,普通做法N!种情况肯定不对。比如aa的全排列只有一种。所以此时不能对字符串进行遍历,而是字符的词频进行遍历,如果词频字符的词频大于0, 就可以用。#include <iostream>#include <vector>#include <string&gt...

2019-07-30 14:47:07 873

原创 【左神算法】基础班第三课——两个栈实现队列,两个队列实现栈,最小值栈

两个栈实现队列基本要求:入队元素全部往push_stack里加出队元素全部从pop_stack里出,如果pop_stack里没有元素,push_stack所有元素压入pop_stack。#include <iostream>#include <vector>#include <stack>using namespace std;...

2019-07-26 13:50:06 168

原创 【左神算法】基础班第三课——无序数组中排序后相邻两数最大差值

题意输入:[2, 0, 9, 3, 5]输出:4因为输入排序后, 数组为【0, 2, 3, 5, 9】,相邻两数的最大差值为9 - 5 = 4。思路:简单办法, 排序+遍历=nlogn优化办法:设有n个数,则建n+1个桶,第i个桶的数据范围为[min+ per_gap * (i - 1), min + per_gap * i), per_gap = (mx - ...

2019-07-26 13:13:44 267

原创 链表逆置,递归实现

用递归遍历到最后一个元素,从最后一个元素开始操作。设P逆置链表的尾指针,在尾指针后面不断加入新的元素即可。#include <iostream>using namespace std;struct node{ int x; node *next; node(int x = 0, node *next = NULL) : x(x), next(nex...

2019-07-25 15:44:10 675

原创 【学习笔记】操作系统LRU算法实现

LRU最少最近未使用算法,程序在在固定大小的cache中运行,当程序有新的数据要写入cache但cache已满,则会将cache中最久没有使用的单元释放出来,供程序使用。比较好的实现方法是用一个map映射来记录当前数据是否在缓存中,用一个双向链表来记录cache中数据的使用次序。我的代码规定靠近头的是最近使用的。所以LRU算法的一个主要功能就是Put。向缓冲中放数据。当数据存在于缓存中时...

2019-07-25 14:21:11 2356

原创 【学习笔记】计算机网络(一)——层次结构

一、OSI七层网络模型各层作用应用层:和用户交互的网络应用DNS、http表示层:两个通信系统中交换信息的方式(语法和语义),加密解密,压缩解压、数据格式转变会话层:用户/进程之间建立连接,有序的传输数据传输层:两个进程间通信。完成可靠、不可靠传输、差错控制、流量控制、复用分用网络层:把分组从源端传到目的端,为网络上的不同主机提供通信服务。路有选择、流量控制、差错控制、拥塞控制...

2019-07-22 10:07:10 125

原创 【左神算法】基础班第二课(三)堆排序及对结构的应用

堆排序#include <iostream>#include <vector>using namespace std;void heapInsert(vector<int> &a, int value){ a.push_back(value); int index = (int)a.size() - 1; whil...

2019-07-19 15:31:36 177

原创 【左神算法】基础班第二课(二)——快速排序

传统快排,一次把一个元素放到正确的位置,然后递归#include <iostream>#include <vector>using namespace std;int Partition(int a[], int l, int r){ int key = a[r]; while (l < r) { wh...

2019-07-19 12:13:06 310

原创 【左神算法】基础班第二课(一)——荷兰国旗

问题:荷兰国旗问题,给定一个数组,让小于0的在左边,大于0的在右边,0在中间如输入 [1, -2, 3, 0, -3, 0]输出: [-2, -3, 0, 0, 3, 1]思路:设置3个游标l = 0, r = n - 1, current = 0;l的左边小于0,r的右边大于0,中间为0三种情况a[current] < 0时, swap(a[current++]...

2019-07-19 10:50:33 191

原创 【左神算法】基础班第一课(二)——归并解决逆序数

问题:小和或者逆序数问题求数组中,左数小于右数的和。输入[1 2 3 4 5]输出202的位置 res += 1 res=13的位置 res += 1 + 2 res = 44的位置res += 1 + 2 + 3 res = 105的位置res += 1 + 2 + 3 + 4 res = 20归并代码#include <iostream&gt...

2019-07-18 17:40:22 295

原创 【左神算法】基础班第一课(一)——对数机和有序数组中找一个无序数组元素

问题:在找出长度为m的无序数组b不存在于长度为n的有序数组a中的元素。a = [1, 2, 3, 4, 5] b= [1, 9, 3, 7, 5]输出 [9, 7]方法一:穷举 m*n方法二:在a中二分查找,m*logn方法三:b排序, 求差集 m*longm具体用方法二还是方法三,看数组长度。同时介绍对数器:在笔试中有一个保证正确且容易实现的方法ri...

2019-07-18 16:39:30 625

原创 【学习笔记】计算机操作系统之进程(三)

进程的描述1、进程概念(三种典型定义):程序执行一次的过程 程序和数据在处理机上顺序执行一次的过程 具有独立功能的程序在数据集合上运行一次的过程,他是系统调度和资源资源分配的一个独立单位。2、进程的组成:PCB+代码段+数据段。PCB有进程的描述信息(PID, UID),进程控制管理信息(优先级、当前状态),资源分配信息(键盘、鼠标、打印机、程序段指针、数据段指针),处理机信息(各...

2019-07-18 14:38:51 168

原创 【学习笔记】计算机操作系统之引论(二)

1、操作系统(OS)概念:控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,以提供给用户和其他软件服务方便的接口和环境。它是计算机系统中最基本的系统软件。2、操作系统的功能:资源的管理者:处理器(cpu)、存储器(内存)、文件、设备管理(磁盘、I/O设备) 向用户提供服务:命令接口、程序接口、GUI接口 对硬件机器的拓展:扩充机器3、操作...

2019-07-18 11:08:06 124

原创 【学习笔记】计算机操作系统之导读(一)

参考书:计算机操作系统汤小丹、汤子瀛版学习资源:王道计算机操作系统视频(bilibili有资源)学习视频共分为5部分1、概念目标、绪论等 (教材第一章)2、进程、处理机调度 (教材第二、三章)3、存储器(教材四、五章)4、文件、磁盘(教材七、八章)5、I/O管理 (教材第六章)...

2019-07-18 09:16:29 169

原创 笔试题2

#include <iostream>using namespace std;int a[605][605];int dp[605][605];int M, N, bx, by, ex, ey;int dir[4][2] = {-1, 0, 0, 1, 1, 0, 0, -1};int isOK(int x, int y){ return x >= ...

2019-04-16 19:40:15 110

原创 2020年4-10日华为笔试第二题

给定一个字符串,如abc3(A),表示括号内的A输出3次,结果逆向输出,即AAAcba如3(A)3(F) 输出FFFAAA如ab2(cd3(ef)2gh)) 输出hghgfefefedchghgfefefedcba题目保证数字后面一定是括号,括号一定配对。#include <iostream>using namespace std;string s;int...

2019-04-10 22:03:03 669 1

原创 笔试题1

第一题有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?#i...

2019-04-02 23:56:53 569

原创 Python中输入数据,以空格分隔

参考链接# -*-coding:utf8-*-# 用空格获取输入数据的两种方法, map()的返回值是一个迭代器num1 = list(map(int, input().strip().split()))num2 = [int(temp) for temp in input().split()] ...

2018-11-22 15:08:21 26300 1

原创 Python列表推导式的使用和一些遍历技巧

参考链接# -*-coding:utf8-*-# 用列表推导式求矩阵的转置a = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]def T(a): if len(a) == 0: #空矩阵 return [] l = len(a[0]) for i in range(1, l...

2018-11-22 00:16:31 1842

原创 Python3菜鸟教程(10):函数中的一些细节

参考链接# -*-coding:utf8-*-# 不定参函数 *args中的args相当于一个元组def MySum(*args): return sum(args)# **args中的args相当于一个字典def addParam(param, **args): param.update(args)print(MySum(1, 2, 3,4, ...

2018-11-21 22:29:38 1359

原创 Python3中global和nonlocal去区别

变量的作用域如下L (Local) 局部作用域 E (Enclosing) 闭包函数外的函数中 G (Global) 全局作用域 B (Built-in) 内建作用域x = int(2.9) # 内建作用域 g_count = 0 # 全局作用域def outer(): o_count = 1 # 闭包函数外的函数中 def inner(): ...

2018-11-21 20:14:26 271

原创 Python3菜鸟教程(9):迭代器和生成器的使用

参考链接# -*-coding:utf8-*-a = {'xie', 'shi', 'yong'}it = iter(a) # 迭代的初试地址for i in it: print(i, end=' ')print()it2 = a.__iter__() # 迭代的初始地址for i in it2: # 在循环里自己调用了迭代器后移 print(i...

2018-11-21 17:15:27 295

原创 Python3菜鸟教程(8):集合的基本操作

参考链接# -*-coding:utf8-*-a = set() # 创建一个空集a.add('xie') # 添加一个元素a.add('shi')a.add('xie')a.add('a')print(a) # {'a', 'shi', 'xie'} 集合的输出是有序的a.update({1, 2, 3}, [4, 5]) # 加入序列里的元素print...

2018-11-21 16:41:04 483

原创 Python3菜鸟教程(7):字典的基本操作

参考链接# -*-coding:UTF8-*-if __name__ == '__main__': dictionary = {'name': '张三', 'age': 19} # 添加元素 if 'sex' not in dictionary.keys(): dictionary['sex'] = 'male' print(dictio...

2018-11-20 01:05:30 820

原创 Python3菜鸟教程(6):元组的基本操作

参考链接# -*-coding:UTF8-*-# 元组# 元组的功能比较单一,其内部元素只能访问,不能修改,不能删除tup = (1, 2, 3, 4)del tup # 只能删除整个元组,不能del tup[0] 会报错tup = (1, 2, 3, 4) # 如果不重新定义tup,下面的代码会显示 undefinedprint(len(tup)) # 4pri...

2018-11-19 21:19:45 601

原创 Python3菜鸟教程(5):list的基本操作和技巧

参考链接1参考链接2# -*-coding:UTF-8-*-# list删除某个元素list1 = [1, 2, 3, 4]del list1[3]print(list1) # [1, 2, 3]list1.pop(1) # 默认弹出最后一个元素print(list1) # [1, 3]# min max(list) 返回最大最小元素list2 = [3, 5,...

2018-11-19 21:07:54 823

原创 python中常见的4中赋值运算深拷贝,浅拷贝的讨论

分别是等号,切片,copy和deepcopy# *-*coding:UTF-8 *-*import copy# list赋值操作a = [1, 2, 3, [4, 5]]b = aprint(a is b) #True 即a, b公用内存a[3] = 4print('a : ', a) # [1, 2, 3, 4]print('b : ', b) # [1, 2, ...

2018-11-19 19:10:23 111

原创 Python3菜鸟教程(4):字符串的操作和内置函数

参考链接# -*-coding:UTF-8-*-def basic_operator(): # * + 操作 str1 = 'hello' str2 = 'python' print(str1 + ' ' + str2) # hello python print(str1 * 2 + ' ' + str2 * 2) # hellohello py...

2018-11-19 17:07:32 381

原创 Python3菜鸟教程(3):数据类型

参考链接# -*-coding:UTF-8-*-# python 没有++ --运算符# 算术运算符 +、-、*、/、//、**、%# 比较(关系)运算符 == != &gt; &lt; ...# 赋值运算符 = += -= //= %= ...# 逻辑运算符 and or not# 位运算符 &amp; | ^ ~ &lt;&lt; &gt;&gt;# 成员运...

2018-11-19 16:04:01 476

原创 Python3菜鸟教程(2):注释和代码规范

参考链接(代码规范)参考链接(注释)# -*-coding:UTF-8-*-def sort(nums, n): """ function : sort a list which contain n elements :param list: target list :param n: length of lsit :return: a lsi...

2018-11-19 15:53:43 1481

原创 Python3菜鸟教程(1):基本数据类型

教程链接零零散散的学了一段时间python,准备系统的跟着菜鸟教程复习一遍,也算是查漏补缺,温故知新。太简单的常识问题不做记录,简单写写平时没有注意的地方或者重点# -*- coding:UTF-8 -*-is_output = 1if __name__ == '__main__': # 转义字符的处理 if is_output == 0: pri...

2018-11-19 13:14:22 784

原创 动态规划的空间优化, 以最长公共子序列为例

最简单的直接按照递推式去写#include &lt;stdio.h&gt; #include &lt;string.h&gt; char a[1001], b[1001]; int tag[1001][1001]; #define max(a, b) a &gt; b ? a : bint f(int i, int j) { if (i &lt; 0 || j &l...

2018-11-07 15:15:01 1302

原创 【线性回归】梯度下降、牛顿法,最小二乘法的

1、梯度下降设损失函数为:                                                                     其中m为样本个数,是输入的特征,是目标值,为模型预测值,就是误差了,就是所有样本的误差之和,现在要做的事就是找到一个让最小1.1批量梯度下降当为一个变量时,梯度下降就是一个求导的过程,当时一个向量时,梯度下降就是对中...

2018-10-30 00:35:05 2188

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除