递归

linux-mem..

核能气质少年 提交于 2020-03-05 12:01:32
1 quanxiang wenti 然后递归修改/soft目录的用户权限,输入下方的代码: sudo chown -R wudq:wudq /gc100 //带参数-R意味着可以递归修改目录/gc100所有内容的用户权限 来源: https://www.cnblogs.com/gwwdq/p/12419173.html

2.递归--基本概念及思路

徘徊边缘 提交于 2020-03-05 10:55:40
递归设计经验: 1.找重复:找到规模更小的子问题(本次做一部分剩下的分给下一次调用函数去做) 2.找重复中的变化量-->参数 3.找参数的变化趋势-->设计出口 思路: 1.(切蛋糕)将一个大问题分解为子问题(一个小问题或多个子问题) 2.递推公式(逐步变小) 例如:n的阶乘,斐波那契数列等 1.思路一:小练习:字符串的反转(从后向前递归) static String reverse(String src,int end)//字符串的反转 { if(end==0) return ""+src.charAt(0); return src.charAt(end)+reverse(src,end-1);//charAt() 方法用于返回指定索引处的字符。索引范围为从 0 到 length() - 1 } 2.思路二:最大公约数(辗转相除) static int f5(int a,int b) { if(a%b==0)return b; int k=a%b; a=b;b=k; return f5(a,b); } //f5简化为f6 static int f6(int a,int b) { if(a%b==0)return b; return f6(b,a%b); } 3.(思路一)插入排序的递归函数 static void insertsort(int arr[],int k)/

DDD及相关概念

心已入冬 提交于 2020-03-05 07:00:50
领域 :指一个具体的应用范围,比如电商、订票管理、会议管理等,实现某一领域的功能,与其对应的商业领域一致。譬如Contoso会议管理系统从两个方面来阐述(1)系统概览:销售会议座位、创建新会议【领域的活动是什么,核心内容】(2)非功能性需求:扩展性、灵活性【降低维护成本,延长生命周期】。 有界上下文 :引入本概念的目的是为大型、复杂系统的分解提供一种容易管理的方法。在这种分解方式下,一个大型系统由多个有界上下文构成,每个有界上下文所包含的是一个自包容的领域模型,且有自己本身的普适语言。可以将有界上下文看做是一个有着清晰一致性边界的自动化的商业组件。在通常情况下,一个有界上下文更另一个有界上下文进行通信的方法是发送事件。 上下文线路图 :描述不同模型之间的接触点,明确说明所有需要进行翻译的通信链接,并注明任何共享模块或对象。用户在进行这些活动后得出的结果就是一种“上下文线路图”。这种地图提供的是整个系统的概览,帮忙人民理解不同的有界上下文是如何相互交互的。 失血模型 :模型仅仅包含数据的定义和getter/setter方法,业务逻辑和应用逻辑都放到服务层中。这种类在java中叫POJO,在.NET中叫POCO。 贫血模型 :贫血模型中包含了一些业务逻辑,但 不包含依赖持久层的业务逻辑 。这部分依赖于持久层的业务逻辑将会放到服务层中。可以看出,贫血模型中的领域对象是不依赖于持久层的。

14.Python内置函数⼆

笑着哭i 提交于 2020-03-04 21:12:44
⼀. lamda匿名函数 为了解决⼀些简单的需求⽽设计的⼀句话函数 lambda表⽰的是匿名函数. 不需要⽤def来声明, ⼀句话就可以声明出⼀个函数 语法: 函数名 = lambda 参数: 返回值 注意: 1. 函数的参数可以有多个. 多个参数之间⽤逗号隔开 2. 匿名函数不管多复杂. 只能写⼀⾏, 且逻辑结束后直接返回数据 3. 返回值和正常的函数⼀样, 可以是任意数据类型 匿名函数并不是说⼀定没有名字. 这⾥前⾯的变量就是⼀个函数名. 说他是匿名原因是我们通 过__name__查看的时候是没有名字的. 统⼀都叫lambda. 在调⽤的时候没有什么特别之处. 像正常的函数调⽤即可 ⼆. sorted() 排序函数. 语法: sorted(Iterable, key=None, reverse=False) Iterable: 可迭代对象 key: 排序规则(排序函数), 在sorted内部会将可迭代对象中的每⼀个元素传递给这个函 数的参数. 根据函数运算的结果进⾏排序 reverse: 是否是倒叙. True: 倒叙, False: 正序 和函数组合使⽤ 和lambda组合使⽤ 三. fifilter() 筛选函数 语法: fifilter(function. Iterable) function: ⽤来筛选的函数. 在fifilter中会

python 函数

拈花ヽ惹草 提交于 2020-03-04 20:26:17
函数定义和使用 def 函数名(参数): ... 函数体 ... 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件、计算出 [11,22,38,888,2]中的最大数等... 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据。 总结使用函数的好处: 1.代码重用 2.保持一致性,易维护 3.可扩展性 1、返回值 函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。 总结:当一个函数/过程没有使用return显示的定义返回值时,python解释器会隐式的返回None 返回值数=0:返回None 返回值数=1:返回object 返回值数>1:返回tuple 1.形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量 2.实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值 3.位置参数和关键字(标准调用:实参与形参位置一一对应;关键字调用:位置无需固定) 4.默认参数 5.参数组 # ######### 定义函数 ######

每天AC系列(十二):K个一组翻转链表

我的未来我决定 提交于 2020-03-04 19:09:26
1 题目 LeetCode第25题 ,每K个节点一组进行翻转,剩下不足K个的保留原状. 2 直接翻转 将链表分成三部分,已翻转,待翻转,未翻转三部分: 首先,用一个指针t表示要插入的位置的前驱,一边把head移动k遍,一边插入在t后面(下图假设k=3): int i=0; for(;i<k && head != null;++i) { temp = head.next; head.next = t.next; t.next = head; head = temp; } 直接插在t的后面,一轮循环之后,移动t与head. t的新位置为未插入head之前的head的位置,因此在插入之前把head的位置保存下来,直接使t移动到该位置,head的位置为自然移动到的位置,不需改变。 ListNode nextTPosition = head; ListNode temp; int i=0; for(;i<k && head != null;++i) { temp = head.next; head.next = t.next; t.next = head; head = temp; } if(i == k) t = nextTPosition; 接着再翻转,到达7后,7不需要翻转,因为剩下的节点数不足: 这时就需要i发挥作用了,i表示已翻转的节点的值,因为只是一次遍历,每遍历k次便翻转k次

python【蓝桥杯vip练习题库】ADV-308递归输出

谁说我不能喝 提交于 2020-03-04 16:54:59
试题 算法提高 递归输出 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述   编写递归函数,将组成整数的所有数字逐个输出,每个数字后面加上一个减号“-”,例如对于整数123,该函数将输出1-2-3- 。编写主函数测试该递归函数。 输入格式   输入一个整数n 输出格式   如题目要求,把n的每个数字后面加一个减号”-“输出 样例输入 一个满足题目要求的输入范例。 例: 123 样例输出 与上面的样例输入对应的输出。 例: 1-2-3- 数据规模和约定   输入n>0,必须使用递归调用来实现! """ @Author:Lixiang @Blog(个人博客地址): https://lixiang007.top/ @WeChat:18845312866 """ import math import string import sys import cmath str1 = input ( ) len1 = len ( str1 ) temp = "" for i in str1 : if i != temp : str1 = str1 . replace ( i , i + '-' ) temp = i print ( str1 ) 来源: CSDN 作者: 理想007 链接: https://blog.csdn.net/weixin_43838785/article

day20-回顾递归和IO流基础

旧时模样 提交于 2020-03-04 16:22:01
1:回顾递归(理解) (1)方法定义中调用方法本身的现象 举例:老和尚给小和尚讲故事,我们学编程 (2)递归的注意事项; A:要有出口,否则就是死递归 B:次数不能过多,否则内存溢出 C:构造方法不能递归使用 (3)递归的案例: A:递归求阶乘 B:兔子问题 C:递归输出指定目录下所有指定后缀名的文件绝对路径 D:递归删除带内容的目录(小心使用) 2:IO流(掌握) (1)IO用于在设备间进行数据传输的操作 (2)分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 注意: a:如果我们没有明确说明按照什么分,默认按照数据类型分。 b:除非文件用windows自带的记事本打开我们能够读懂,才采用字符流,否则建议使用字节流。 (3)FileOutputStream写出数据 A:操作步骤 a:创建字节输出流对象 b:调用write()方法 c:释放资源 B:代码体现: FileOutputStream fos = new FileOutputStream("fos.txt"); fos.write("hello".getBytes()); fos.close(); C:要注意的问题? a:创建字节输出流对象做了几件事情? b:为什么要close()? c:如何实现数据的换行? d:如何实现数据的追加写入?

尾递归

倖福魔咒の 提交于 2020-03-04 12:59:45
尾递归 - 51CTO.COM https://book.51cto.com/art/201212/370096.htm 来源: https://www.cnblogs.com/yuanjiangw/p/12408811.html

oracle中 connect by prior 递归算法

[亡魂溺海] 提交于 2020-03-04 07:25:12
http://blog.163.com/xxciof/blog/static/7978132720095193113752/ oracle中 connect by prior 递归算法 Oracle中start with...connect by prior子句用法 connect by 是结构化查询中用到的,其基本语法是: select ... from tablename start with 条件1 connect by 条件2 where 条件3; 例: select * from table start with org_id = 'HBHqfWGWPy' connect by prior org_id = parent_id; 简单说来是将一个树状结构存储在一张表里,比如一个表中存在两个字段: org_id,parent_id那么通过表示每一条记录的parent是谁,就可以形成一个树状结构。 用上述语法的查询可以取得这棵树的所有记录。 其中: 条件1 是根结点的限定语句,当然可以放宽限定条件,以取得多个根结点,实际就是多棵树。 条件2 是连接条件,其中用PRIOR表示上一条记录,比如 CONNECT BY PRIOR org_id = parent_id就是说上一条记录的org_id 是本条记录的parent_id,即本记录的父亲是上一条记录。 条件3 是过滤条件