- 博客(29)
- 收藏
- 关注
原创 python模块 - argparse
一、综述当用户在shell中执行某py文件时,可以额外添加一些参数,并在该py文件中读取该参数值,从而进行相应操作二、具体代码主要分为三个部分:import argparse1# 首先声明一个对象parser = argparse.ArgumentParser(description='Chinese Text Classification')2parser.add_argument('--model', type=str, required=True, help='choose a m
2020-12-08 22:26:15
466
原创 Python路径问题
一、前述利用IDE运行某个python模块时,实际上是在os.getcwd()中运行(不一定是当前路径)在shell中利用python xxx运行某python模块时,实际上是在执行该命令所在目录下运行二、os与sys1. osos主要与操作系统相关1.1 os.getcwd()获取执行本py文件的路径1.2 os.path.realpath(file)获取当前py文件的绝对路径1.3 os.path.dirname(param)获取父目录的绝对路径2. sys2.1 sys.
2020-12-06 20:11:15
408
1
原创 二叉树计算问题完整代码
tree.h:#pragma once#include<vector>#include<iostream>using namespace std;typedef struct BiTree { //所用的二叉树数据结构 int key; //键值 B...
2019-04-08 00:46:23
498
原创 (二叉树)4. 二叉树的各类计算问题(总结点个数、[叶子|度数为1|度数为2]结点个数以及二叉树深度计算)
一、前言本程序的存储结构用的是二叉排序树,相关文章可看:(二叉树)1. 二叉排序树的创建、[先序、中序、后序](递归和非递归六种操作)遍历讲解及代码二、内容说明:本文所有计算方法均采用递归计算方法。2.1 计算二叉树深度2.1.1 代码//计算二叉树的深度int depth(BiTree* root) { if (!root) return 0; else { int...
2019-04-08 00:44:37
1959
1
原创 二叉排序树完整代码
tree.h(存放函数声明):#pragma once#include<vector>#include<iostream>using namespace std;typedef struct BiTree { //所用的二叉树数据结构 int key; ...
2019-04-06 23:55:15
1536
原创 (二叉树)3. 二叉排序树结点的删除
一、引言上一篇文章:(二叉树)2. 查找二叉排序树的最大、最小值及查找指定结点前驱、后继结点由于避免篇幅过长,将二叉排序树建立、[先序、中序、后序]递归与非递归遍历、查找最大、最小值以及查找指定结点的前驱、后继结点、删除指定结点所有代码新放一个页面,下面是地址:本文实现二叉排序树的删除,并且不会“缩略代码”秀技术。另外因为二叉排序树结点的删除要考虑的情况比较多,所以在最后设计了一个测试程...
2019-04-06 23:53:00
980
原创 (二叉树)2. 查找二叉排序树的最大、最小值及查找指定结点前驱、后继结点
一、前言(二叉树)1. 二叉排序树的创建、[先序、中序、后序](递归和非递归六种操作)遍历讲解及代码本文接上文本文实现查找二叉排序树的最大、最小值以及寻找指定结点的前驱和后继。本页需用概念:祖先结点是从根到该结点所经过的所有结点(不包含本结点)。二、正文1. 查找最大、最小值1.1 说明二叉排序树最“左边”的结点就是最大j结点,最“右边”的结点就是最小j结点也就是说,一直遍历...
2019-04-03 23:47:00
2308
原创 (二叉树)1. 二叉排序树的创建、[先序、中序、后序](递归和非递归六种操作)遍历讲解及代码
一、总述1. 前言在大学中我看到很多人都拿着数据结构像高中课本那样啃,个人认为对于学计算机来说这是最不应该的方式。计算机—Computer前面是Compute,计算、实践的意思,理论+实践才能学好一门学问2. 理论下面这张图是一棵很普通的二叉树,基础理论只需要知道以下两点(下面两条都是对于完全二叉树来讲):按照广度优先从1开始加索引,对于非叶子节点来说,如果当前节点数是n,那么其左...
2019-03-31 00:07:08
629
原创 (力扣---动态规划)删除与获得点数
(力扣—动态规划)删除与获得点数问题描述给定一个整数数组 nums ,你可以对它进行一些操作。每次操作中,选择任意一个 nums[i] ,删除它并获得 nums[i] 的点数。之后,你必须删除每个等于 nums[i] - 1 或 nums[i] + 1 的元素。开始你拥有 0 个点数。返回你能通过这些操作获得的最大点数。示例 1:输入: nums = [3, 4, 2]输出: 6...
2019-03-27 23:43:53
319
原创 (力扣---动态规划)最长数对链(贪心解法)
(力扣—动态规划)最长数对链(贪心解法)问题描述给出 n 个数对。 在每一个数对中,第一个数字总是比第二个数字小。现在,我们定义一种跟随关系,当且仅当 b < c 时,数对(c, d) 才可以跟在 (a, b) 后面。我们用这种形式来构造一个数对链。给定一个对数集合,找出能够形成的最长数对链的长度。你不需要用到所有的数对,你可以以任何顺序选择其中的一些数对来构造。示例 :输入:...
2019-03-23 21:13:30
461
原创 (力扣---动态规划)最低票价
(力扣—动态规划)最低票价问题描述在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 days 的数组给出。每一项是一个从 1 到 365 的整数。火车票有三种不同的销售方式:一张为期一天的通行证售价为 costs[0] 美元;一张为期七天的通行证售价为 costs[1] 美元;一张为期三十天的通行证售价为 costs[2] 美元。...
2019-03-20 20:41:29
902
原创 (深度优先搜索dfs经典例题)走迷宫
(深度优先搜索dfs经典例题)走迷宫描述这种dfs太经典啦,就不多描述了下面用一对输入输出数据直接描述问题5 6....S*.***...*..*.*.***..T....第一行:输入行数和列数墙壁:*(星号)路:.(英文句号)开始标记:S结束标记:T输出图形:....S*.***LL.*..*L*.***L.TLLLL用L标记所走的路径思想这道题...
2019-03-20 01:12:57
1693
原创 (力扣---动态规划)整数拆分
(力扣—动态规划)整数拆分问题描述给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58...
2019-03-15 01:10:29
1903
原创 (力扣---动态规划)回文子串
(力扣—动态规划)回文子串描述给定一个字符串,你的任务是计算这个字符串中有多少个回文子串。具有不同开始位置或结束位置的子串,即使是由相同的字符组成,也会被计为是不同的子串。示例 1:输入: “abc”输出: 3解释: 三个回文子串: “a”, “b”, “c”.示例 2:输入: “aaa”输出: 6说明: 6个回文子串: “a”, “a”, “a”, “aa”, “aa...
2019-03-14 14:13:16
529
原创 (力扣---动态规划)最长回文子串
(力扣—动态规划)最长回文子串问题描述给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。示例 1:输入: “babad”输出: “bab”注意: “aba” 也是一个有效答案。示例 2:输入: “cbbd”输出: “bb”思想这道题肯定要用到两个下标变量,假设为i、j这时候我们就会想到,如果当s[i] == s[j]成立且字符串...
2019-03-13 00:59:25
315
原创 (力扣---动态规划)下降路径最小和
(力扣—动态规划)下降路径最小和描述给定一个方形整数数组 A,我们想要得到通过 A 的下降路径的最小和。下降路径可以从第一行中的任何元素开始,并从每一行中选择一个元素。在下一行选择的元素和当前行所选元素最多相隔一列。示例:输入:[[1,2,3],[4,5,6],[7,8,9]]输出:12解释:可能的下降路径有:[1,4,7], [1,4,8], [1,5,7], [1,5,8]...
2019-03-12 23:41:09
454
原创 (力扣---动态规划)石子游戏
(力扣—动态规划)石子游戏描述亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行,每堆都有正整数颗石子 piles[i] 。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数,所以没有平局。亚历克斯和李轮流进行,亚历克斯先开始。 每回合,玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止,此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平,当亚历克斯赢...
2019-03-12 00:55:14
471
原创 (力扣---动态规划)比特位计数
(力扣—动态规划)比特位计数要求给定一个非负整数 num。对于 0 ≤ i ≤ num 范围中的每个数字 i ,计算其二进制数中的 1 的数目并将它们作为数组返回。示例 1:输入: 2输出: [0,1,1]示例 2:输入: 5输出: [0,1,1,2,1,2]思想这道题要计算二进制中1的个数,那我们就想能不能用二进制进行运算(ps:这里多说一句 二进制真的太奇妙了)为...
2019-03-12 00:06:03
363
原创 (力扣---动态规划)打家劫舍
(力扣—动态规划)打家劫舍说明你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报装置的情况下,能够偷窃到的最高金额。示例 1:输入: [1,2,3,1] 输出: 4解释: 偷窃 1 号房屋 ...
2019-03-11 01:03:20
1566
1
原创 (力扣---动态规划)使用最小花费爬楼梯
(力扣—动态规划)使用最小花费爬楼梯说明数组的每个索引做为一个阶梯,第 i个阶梯对应着一个非负数的体力花费值 cost[i] (索引从0开始)。每当你爬上一个阶梯你都要花费对应的体力花费值,然后你可以选择继续爬一个阶梯或者爬两个阶梯。您需要找到达到楼层顶部的最低花费。在开始时,你可以选择从索引为 0 或 1 的元素作为初始阶梯。示例 1:输入: cost = [10, 15, 20]...
2019-03-10 13:50:49
652
原创 (力扣---动态规划)最大子序和
(力扣)最大自序和说明给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4], 输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解释很多人对这道题最开始都会有一个误区,就是 只要将连续的正数相加就肯定是最大的这种思想当然是有问题的 最简单的例子 1,...
2019-03-10 01:06:40
663
原创 (力扣---动态规划)爬楼梯
(力扣)爬楼梯说明假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2 输出: 2 解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3 输出: 3 解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2...
2019-03-10 00:49:46
1550
原创 (力扣---动态规划)买卖股票的最佳时机
(力扣)买卖股票的最佳时机说明给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票),设计一个算法来计算你所能获取的最大利润。注意你不能在买入股票前卖出股票。示例1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = ...
2019-03-10 00:36:32
762
原创 (力扣---动态规划)区域和检索 - 数组不可变
(力扣)区域和检索 - 数组不可变给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点。示例:给定 nums = [-2, 0, 3, -5, 2, -1],求和函数为 sumRange()sumRange(0, 2) -&amp;gt; 1sumRange(2, 5) -&amp;gt; -1sumRange(0, 5) -&amp;gt; ...
2019-03-10 00:24:59
341
原创 (力扣---动态规划)不同路径
(力扣)不同路径描述一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为“Start” )。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为“Finish”)。问总共有多少条不同的路径?例如,上图是一个7 x 3 的网格。有多少可能的路径?说明:m 和 n 的值均不超过 100。示例 1:输入: m = 3, n = 2输出: 3...
2019-03-09 23:40:47
321
原创 (力扣---动态规划)等差数组划分
(力扣)等差数组划分描述如果一个数列至少有三个元素,并且任意两个相邻元素之差相同,则称该数列为等差数列。例如,以下数列为等差数列:1, 3, 5, 7, 97, 7, 7, 73, -1, -5, -9以下数列不是等差数列。1, 1, 2, 5, 7数组 A 包含 N 个数,且索引从0开始。数组 A 的一个子数组划分为数组 (P, Q),P 与 Q 是整数且满足 0&amp;lt...
2019-03-09 01:16:44
853
原创 (力扣---动态规划)两个字符串中最小ASCII和
(力扣)两个字符串中最小ASCII和描述给定两个字符串s1, s2,找到使两个字符串相等所需删除字符的ASCII值的最小和。示例1输入: s1 = “sea”, s2 = “eat”输出: 231解释: 在 “sea” 中删除 “s” 并将 “s” 的值(115)加入总和。在 “eat” 中删除 “t” 并将 116 加入总和。结束时,两个字符串相等,115 + 116 = 23...
2019-03-08 13:10:40
577
原创 (力扣---动态规划)三角形最小路径和
(力扣)三角形最小路径和问题描述给定一个三角形,找出自顶向下的最小路径和。每一步只能移动到下一行中相邻的结点上。例如,给定三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ]自顶向下的最小路径和为 11(即,2 + 3 + 5 + 1 = 11)。最简单的dp问题,不多说了。 ...
2019-03-07 23:55:35
216
原创 (力扣---动态规划)最小路径和
(力扣)动态规划—最小路径和问题描述:给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小。说明:每次只能向下或者向右移动一步。思想:这是一道非常常规且基础的动态规划的题目,非常适合自己去理解dp的解题思路。本解采用最基础的解法。dp方程:dp[i][j] = min(dp[i - 1][j], dp[i][j - 1]) + g...
2019-03-07 14:33:15
931
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人