友链朋友圈

力扣589:N 叉树的前序遍历

2022年03月10日 力扣每日一题 题目 给定一个 n 叉树的根节点 root ,返回 其节点值的 前序遍历 。 n 叉树 在输入中按层序遍历进行序列化表示,每组子节点由空值 null 分隔(请参见示例)。 示例 1: 输入:root = [1,null,3,2,4,null,5,6]输出:[1,3,5,6,2,4] 示例 2: 输入:root = [1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[1,2,3,6,7,11,14,4,8,12,5,9,13,10] 提示: 节点总数在范围 [0, 104]内 0 <= Node.val <= 104 n 叉树的高度小于或等于 1000 进阶:递归法很简单,你可以使用迭代法完成此题吗? Related Topics 栈 树 深度优先搜索 个人解法 {% tabs categories%} class Solution { List<Integer> list = new ArrayList<>(); public List<Integer> preorder(Node root) { dfs(root); return list; } void dfs(Node root) { if (root == null) { return; } list.add(root.val); for (Node node : root.children) { dfs(node); } }} """# Definition for a No...

avatar 龙儿之家 发表于 2022年03月10日 09:51:36

力扣798:得分最高的最小轮调

2022年03月09日 力扣每日一题 题目 给你一个数组 nums,我们可以将它按一个非负整数 k 进行轮调,这样可以使数组变为 [nums[k], nums[k + 1], ... nums[nums.length - 1], nums[0], nums[1], ..., nums[k-1]] 的形式。此后,任何值小于或等于其索引的项都可以记作一分。 例如,数组为 nums = [2,4,1,3,0],我们按 k = 2 进行轮调后,它将变成 [1,3,0,2,4]。这将记为 3 分,因为 1 > 0 [不计分]、3 > 1 [不计分]、0 <= 2 [计 1 分]、2 <= 3 [计 1 分],4 <= 4 [计 1 分]。 在所有可能的轮调中,返回我们所能得到的最高分数对应的轮调下标 k 。如果有多个答案,返回满足条件的最小的下标 k 。 示例 1: 输入:nums = [2,3,1,4,0]输出:3解释:下面列出了每个 k 的得分:k = 0, nums = [2,3,1,4,0], score 2k = 1, nums = [3,1,4,0,2], score 3k = 2, nums = [1,4,0,2,3], score 3k = 3, nums = [4,0,2,3,1], score 4k = 4, nums = [0,2,3,1,4], score 3所以我们应当选择 k = 3,得分最高。 示例 2: 输入:nums = [1,3,0,2,4]输出:0解释:nums 无论怎么变化总是有 3 分。所以我们将选择最小的 k,即 0。 提示: 1 <= nums.length <= 105 0 <= nums[i] < nums.length Related Topics 数组 前缀和 个人解法 思路: arrs[k...

avatar 龙儿之家 发表于 2022年03月09日 16:42:38

力扣504:七进制数

2022年02月14日 力扣每日一题 题目 给定一个整数 num,将其转化为 7 进制,并以字符串形式输出。 示例 1: 输入: num = 100输出: "202" 示例 2: 输入: num = -7输出: "-10" 提示: -107 <= num <= 107 Related Topics 数学 个人解法 {% tabs categories%} class Solution { public String convertToBase7(int num) { boolean bl = num < 0; num = Math.abs(num); StringBuilder str = new StringBuilder(); while (num >= 7) { str.insert(0, num % 7); num /= 7; } str.insert(0, num); if (bl) { str.insert(0, '-'); } return str.toString(); }} class Solution: def convertToBase7(self, num: int) -> str: bl = num < 0 s = '' num = abs(num) while num >= 7: s = str(num % 7) + s num //= 7 s = str(num) + s if bl: s ...

avatar 龙儿之家 发表于 2022年03月07日 14:15:07

推理界的3月7号

今天是3月7日,在推理界,历史的今天有如下事件: 仁木悦子(日本)诞辰94周年 种村直树(日本)诞辰86周年 佐飞通俊(日本)诞辰62周年 贾德森·菲利普斯(美国)逝世33周年 仁木悦子   日本名女推理小说作家。   仁木悦子的经历尤其令人注目:1928年生于东京,原名大井三重子、她幼年无忧无虑,但四岁那年患结核性胸椎骨疽病,以致下肢瘫痪,半身不遂。七岁那年父亲去世,不久,母亲也亡故。疾病缠身的仁木悦子幸亏有哥哥大井羲光照顾,他每天教她读书。第二次世界大战爆发,16岁的仁木悦子由哥哥背着来到富山乡下居住。她只读到小学三年级,但却看了不少书,并从18岁起开始写作。她先练习写童话,发表在《儿童俱乐部》和《母亲之友》杂志上,她的30多篇童话小说还结集出版。后来她又成了“克里斯蒂小说迷”,并写出推理小说《猫知道》。这部小说的主角是一对兄妹侦探,哥哥雄太郎是植物系大学生,妹妹悦子是音乐系学生,这对兄妹通过一只猫的经历,侦破了一起谋杀案。作品中渗入作者与她哥哥的影子,推理手法十分细腻,许多伏线埋在紧张的情节之中,把粗心的读者引人迷途,在作品中可见女作家的风格。故事的进展采用侦探的助手叙述的方式,叙述者仁木悦子与作者同名的形式在日本就是由仁木悦子创下的成功先例。之后在日本,作者与作品同名的作品不少。   以仁木兄妹为侦探,作者之后继续撰写了《林中之家》、《有刺之树》、《黑色的飘带》等三部长篇和《黄色的花》等若干短篇。   仁木悦子幼时卧病在床,玩伴就是猫,所以她一直喜欢猫,不但让猫在《猫知道》里扮演重要的角色,她所出版的许多推理小说的封面,也都请画家画描,晚年时还主编了一本以“猫”为主题的小说集。她家中的猫则是女佣外出时,从外面捡回来的遭人遗弃的小猫。   《猫知道》写于1957年,参加了江户川乱步侦探小说奖的评选。经过评委投票,《猫知道》在96篇征文作品中名列第一,并获第三届江户川乱...

avatar 龙儿之家 发表于 2022年03月07日 09:21:47

推理界的3月5号

今天是3月5日,在推理界,历史的今天有如下事件: 水谷准(日本)诞辰118周年 《广益丛报》(中国)第六十五号刊载署名“冷血(陈景韩)戏作”《歇洛克来游上海第一案》117周年 谷克二(日本)诞辰81周年 水谷准   水谷准(1904年3月5日-2001年3月20日),日本小说家、推理作家、翻译家、编辑。   出生于北海道函馆市。旧制函馆中学(现北海道函馆中部高中)中途退学后,进入东京早稻田高中读书。读书期间,1922年以《好敌手》参加“新青年”的有奖征稿第一等入选。早稻田大学文学部法国文学系毕业。1929年接替“新青年”总编辑的职务。1938年一度离职,1939年到1945年再次担任“新青年”的总编辑。   1952年《决斗》(ある決闘)获第5届侦探作家俱乐部奖短篇奖。   二战之后较多创作与高尔夫球有关的作品。 谷克二   谷克二(1941年3月5日-),日本小说家,被称为“狩猎冒险小说之王(狩猎冒险小说第一人者)”。出生于宫崎县延冈市。本名谷正胜。   1963年毕业于早稻田大学商学系。在德国大众汽车公司工作过,之后去了英国,在伦敦大学主修历史经济学。回国后,开始创作生涯。   1974年,凭借处女作《追うもの》获得第1届野性时代新人奖。1978年又以《狙击者》获得第5届角川小说奖。他的作品《サバンナ》(又译作《西班牙的短暂夏天》)以及《越境线》先后获得直木奖候补作。

avatar 龙儿之家 发表于 2022年03月05日 10:45:18

推理界的3月4号

今天是3月4日,在推理界,历史的今天有如下事件: 程小青(中国)出席纪念白居易诞辰诗会65周年 妹尾韶夫(日本)诞辰130周年 詹姆斯·艾尔罗伊(美国)诞辰74周年 黑川博行(日本)诞辰73周年 半村良(日本)逝世20周年 程小青   程小青(1893—1976)【原名程青心,又名程辉斋】   籍贯:江苏吴县人。   身平介绍:少年家贫,曾在钟表店当学徒,自学外语和热爱看书,他18岁时开始从事文学写作,先是与周瘦鹃合作翻译柯南·道尔作品,后来创作《霍桑探案》,一举成名。   据史料介绍,程小青在21岁时发表的《灯光人影》,被《新闻报》举行的征文大赛选中,他小说中的侦探原名霍森,因排字工人误排,于是便成了霍桑。《霍桑探案》发表之后,程小青不断收到读者大量来信。是读者的鼓励,促使程小青先后写出了《江南燕》、《珠项圈》、《黄浦江中》、《八十四》、《轮下血》、《裹棉刀》、《恐怖的话剧》、《雨夜枪声》、《白衣怪》、《催命符》、《索命钱》、《新婚劫》、《活尸》、《逃犯》、《血手印》、《黑地牢》、《无头案》等30余部侦探小说。著名报人郑逸梅曾称赞他:“毕生精力,尽瘁于此,也就成为侦探小说的巨擘。”   程小青的创作,据另一位著名报人范烟桥称“模仿了柯南道尔的写法”,但他又塑造了“中国的福尔摩斯”。为了达到这一目的,程小青作为函授生,受业于美国大学函授科,进修犯罪心理学与侦探学的学习,他从理论上学习西欧侦探理论,在实践中又把中国旧社会发生的案例加以改造。他在谈到创作时,多次谈到自己如何设计侦探小说的名字,怎样取材与裁剪,怎样构思开头与结尾,他把美国作家韦尔斯的专著《侦探小说技艺论》和美国心理学家聂克逊博士的专著《著作人应知的心理学》作为教科书。在小说中,程小青设计了霍桑与包朗一对搭档,类似福尔摩斯与华生医生,但在案件的取材上,程小青着重描写旧中国社会弊病引发的凶杀案,注重人物的心理分析,把...

avatar 龙儿之家 发表于 2022年03月04日 11:28:18

python3学习笔记--集合、元组、字典、列表对比

数据结构 Python支持以下数据结构:列表,字典,元组,集合。 何时使用字典: 当您需要键:值对之间的逻辑关联时。 当您需要基于自定义密钥快速查找数据时。 当你的数据不断修改时。请记住,字典是可变的。 何时使用其他类型: 如果您有一些不需要随机访问的数据集合,请使用列表。当你需要一个简单的,可迭代的频繁修改的集合可以使用列表。 如果你需要元素的唯一性,使用集合。 当数据无法更改时使用元组。 很多时候,元组与字典结合使用,例如元组可能代表一个关键字,因为它是不可变的。 1、列表 使用方括号创建 words = ["Hello", "world", "!"] 使用空的方括号创建空列表 可以通过索引来访问 大多数情况下,列表中的最后一项不会带逗号。然而,在最后一项放置一个逗号是完全有效的,在某些情况下是鼓励的。 列表的索引是从0开始的,而不是从1开始的 2、集合 使用花括号或 set 函数创建 num_set = {1, 2, 3, 4, 5}word_set = set(["spam", "eggs", "sausage"]) 要创建一个空集,必须使用 set(),如 {} 是创建一个空字典。 集合是无序的,这意味着他们不能被索引。 集合不能包含重复的元素。 由于存储的方式,检查一个项目是否是一个集合的一部分比检查是不是列表的一部分更快。 集合使用 add 添加元素 。 remove 方法从集合中删除特定的元素; pop 删除随机的元素。 3、元组 元组 使用圆括号创建 ,也可以在没有圆括号的情况下创建 words = ("spam", "eggs", "sausages",)my_tuple = "one", "two", "three" 使用空括号对创建空元组。 元组比列表快,但是元组不能改变。 可以使用索引访问元组中的值。 4、字典 字典是用于将任意键映射到值的数据结构...

avatar 龙儿之家 发表于 2022年03月03日 21:55:20

购物篮分析

概述 模型概念

avatar Eurkon 发表于 2022年03月01日 10:00:00

python3学习笔记--列表切片

列表切片(List slices)提供了从列表中检索值的更高级的方法。 列表名[num1 : num2 : num3] 从索引num1到num2(不包括num2)间隔为num3的元素 num1或num2为负值代表从末尾开始算起的 num3为负值代表切片进行逆序截取 以下为具体说明 基本用法 用两个以冒号分隔的整数索引列表。 列表切片返回一个包含索引之间旧列表中所有值的新列表。 例如: squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]print(squares[2:6])print(squares[3:8])print(squares[0:1]) 结果: [4, 9, 16, 25][9, 16, 25, 36, 49][0] 和Range参数一样,在一个 slice 中提供的第一个索引被包含在结果中,但是第二个索引没有。 省略一个数字 如果省略了切片中的第一个数字,则将从列表第一个元素开始。 如果第二个数字被省略,则认为是到列表结束。 例如: squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]print(squares[:7])print(squares[7:]) 结果: [0, 1, 4, 9, 16, 25, 36][49, 64, 81] 切片也可以用在元组上 带间隔的切片 列表切片还可以有第三个数字,表示间隔。 例如: squares = [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]print(squares[::2])print(squares[2:8:3]) 结果: [0, 4, 16, 36, 64][4, 25] [2:8:3] 包含从索引2到8间隔3的元素。 带负值 负值也可用于列表切片(和正常列表索引)。当切片(或普通索引)中的第一个和第二个...

avatar 龙儿之家 发表于 2022年03月01日 09:47:34

python3学习笔记--常用的函数

{% note info no-icon %} 本篇博客内容为学习整理笔记,学习地址为: https://www.w3cschool.cn/minicourse/play/python3course?cp=427&gid=0 {% endnote %} 字符串函数 1、join 以另一个字符串作为分隔符连接字符串列表。 例如: print(", ".join(["spam", "eggs", "ham"]))# 打印 "spam, eggs, ham" 2、replace 用另一个替换字符串中的一个子字符串。 例如: print("Hello ME".replace("ME", "world"))# 打印 "Hello world" 3、startswith 确定是否在字符串的开始处有一个子字符串。 例如: print("This is a sentence.".startswith("This"))# 打印 "True" 4、endswith 确定是否在字符串的结尾处有一个子字符串。 例如: print("This is a sentence.".endswith("sentence."))# 打印 "True" 5、lower 将字符串全部转为小写。 例如: print("AN ALL CAPS SENTENCE".lower())# 打印 "an all caps sentence" 6、upper 将字符串全部转为大写。 例如: print("This is a sentence.".upper())# 打印 "THIS IS A SENTENCE." 7、split 把一个字符串转换成一个列表。 例如: print("spam, eggs, ham".split(", "))# 打印 "['spam', 'eggs', 'ham']" 数字函数 1、max 查...

avatar 龙儿之家 发表于 2022年03月01日 09:02:19