自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (2)
  • 收藏
  • 关注

原创 leetcode系列-动态规划-子序列

动态规划-子序列300-最长递增子序列给你一个整数数组 nums ,找到其中最长严格递增子序列的长度。子序列是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7] 是数组 [0,3,1,6,2,2,7] 的子序列。示例 1:输入:nums = [10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是 [2,3,7,101],因此长度为 4 。思路:dp[i]的定义dp[i]表示i之前包括i的最长上升子序列。状态转移方

2021-06-16 22:13:00 441

原创 leetcode系列-股票问题

动态规划-股票系列121-买卖股票的最佳时机给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。返回你可以从这笔交易中获取的最大利润。如果你不能获取任何利润,返回 0 。思路:暴力解法 + 一次遍历/** * 方法一:暴力法:超时 * 我们需要找出给定数组中两个数字之间的最大差值(即,最大利润)。 * 此外,第二个数字

2021-06-09 21:50:01 888

原创 leetcode系列-打家劫舍三部曲

打家劫舍系列198-打家劫舍你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。示例 1:输入:[1,2,3,1]输出:4解释:偷窃 1 号房屋 (金额 = 1) ,然后偷窃 3 号房屋 (金额 = 3)。偷窃到的最高金额 = 1 + 3 = 4 。思路:

2021-06-07 21:07:11 261

原创 dicom批量转Nii格式

import SimpleITK as sitkimport numpy as npimport pydicomimport os'''功能:读取filepath下的dcm文件返回值:读取得到的SimpleITK.SimpleITK.Image类 其他说明: file = sitk.ReadImage(filepath) 获取基本信息,大小,像素间距,坐标原点,方向 file.GetSize() file.GetO

2021-06-03 13:25:51 1328

原创 pyradiomics放射学特征提取代码

1、运行resampleMask.py2、运行ML_traditional_one_file.py2.1 安装Radiomics包,参照https://cloud.tencent.com/developer/article/16625812.2 首先查看conda存在的环境:conda env list创建我们需要的新环境:conda create -n Radiomics python=3.7进入Radiomics环境:conda activate Radiomics下载Pyradiom

2021-06-03 11:28:23 2152 1

原创 医学图像知识

医学图像知识1、三个面:矢状平面 Sagittal Plane 看解剖体左右方位 x横向平面 Transvers Plane 看解剖体上下方位 y冠状面 Coronal Plane 看解剖体前后方位 z2、三种医学坐标体系1)世界坐标体系:如图一左图所示,整个模型只有一个世界坐标来定义位置与方向,在这个坐标系中,整个模型被定位,比如仪器的各个部分,病人。2)解剖学坐标体系:本文以LPS为坐标轴。如图一中图所示,这个坐标系包括3个位面:横断面:与地面

2021-06-03 11:24:31 2065

原创 基于darknet-yolov4训练自己的数据集

基于darknet-yolov4训练自己的数据集一、环境配置git clone http://github.com/pjreddie/darknet.gitcd darknetmake 二、训练自己的数据集主要参考:https://blog.csdn.net/jiangpeng59/article/details/106231878参考:https://blog.csdn.net/qq_38316300/article/details/1067719641、在darknet文件下创建自

2021-06-03 11:19:53 586

原创 leetcode系列-动态规划

动态规划509-斐波那契数斐波那契数,通常用 F(n) 表示,形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始,后面的每一项数字都是前面两项数字的和。也就是:F(0) = 0,F(1) = 1F(n) = F(n - 1) + F(n - 2),其中 n > 1给你n ,请计算 F(n) 。动规五部曲:这里我们要用一个一维dp数组来保存递归的结果确定dp数组以及下标的含义dp[i]的定义为:第i个数的斐波那契数值是dp[i]确定递推公式为什么这是一道非常简单的入

2021-06-01 09:52:19 576

原创 leetcode系列-二叉树

二叉树的理论基础关于二叉树,你该了解这些!:二叉树的种类、存储方式、遍历方式、定义方式public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode() {} TreeNode(int val) { this.val = val; } TreeNode(int val, TreeNode left, TreeNode right) {

2021-06-01 09:47:01 297

原创 leetcode系列-贪心

贪心简单题以下三道题目就是简单题,大家会发现贪心感觉就是常识。是的,如下三道题目,就是靠常识,但我都具体分析了局部最优是什么,全局最优是什么,贪心也要贪的有理有据!455-分发饼干假设你是一位很棒的家长,想要给你的孩子们一些小饼干。但是,每个孩子最多只能给一块饼干。对每个孩子 i,都有一个胃口值 g[i],这是能让孩子们满足胃口的饼干的最小尺寸;并且每块饼干 j,都有一个尺寸 s[j] 。如果 s[j] >= g[i],我们可以将这个饼干 j 分配给孩子 i ,这个孩子会得到满足。你的目标是.

2021-06-01 09:43:49 389

原创 leetcode系列-字符串

字符串:总结篇从字符串的定义到库函数的使用原则,从各种反转到KMP算法什么是字符串字符串是若干字符组成的有限序列,也可以理解为是一个字符数组。反转系列344-反转字符串**编写一个函数,其作用是将输入的字符串反转过来。**输入字符串以字符数组 char[] 的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用 O(1) 的额外空间解决这一问题。如果题目关键的部分直接用库函数就可以解决,建议不要使用库函数。如果库函数仅仅是 解题过程中的一小部分,并且你已经很清楚这个库函数的

2021-05-31 21:50:14 351

原创 leetcode系列-双指针

数组篇使用双指针法才展现出效率的优势:通过两个指针在一个for循环下完成两个for循环的工作。27- 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于 val 的元素,并返回移除后数组的新长度。class Solution { public int removeElement(int[] nums, int val) { int i = 0; for (int j = 0; j <nums.length ; j++) {

2021-05-31 21:42:09 278

原创 leetcode系列-哈希表

哈希表理论基础一般来说哈希表都是用来快速判断一个元素是否出现集合里。对于哈希表,要知道哈希函数和哈希碰撞在哈希表中的作用.哈希函数是把传入的key映射到符号表的索引上。哈希碰撞处理有多个key映射到相同索引上时的情景,处理碰撞的普遍方式是拉链法和线性探测法。接下来是常见的三种哈希结构:数组set(集合)map(映射)哈希表经典题目数组作为哈希表242-给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。字符串a 和 字符串b 是否可以相互组成,在哈希表

2021-05-31 21:39:53 347

原创 leetcode系列-栈与队列

栈与队列的理论基础1、java中stack 是容器么?是容器,stack是继承自Vector,底层使用数组存储、用来模拟栈的一个java集合。同时也是线程安全的。2、栈里面的元素在内存中是连续分布的么?这个问题有两个陷阱:陷阱1:栈是容器适配器,底层容器使用不同的容器,导致栈内数据在内存中是不是连续分布。陷阱2:缺省情况下,默认底层容器是deque,那么deque的在内存中的数据分布是什么样的呢? 答案是:不连续的,下文也会提到deque。3、栈的实现:一个是用java本身的集合类型St

2021-05-31 20:29:44 409

原创 leetcode系列-链表

链表的理论基础在这篇文章关于链表,你该了解这些!中,介绍了如下几点:链表的种类主要为:单链表,双链表,循环链表链表的存储方式:链表的节点在内存中是分散存储的,通过指针连在一起。链表是如何进行增删改查的。数组和链表在不同场景下的性能分析。可以说把链表基础的知识都概括了,但又不像教科书那样的繁琐。链表经典题目虚拟头结点讲解了链表操作中一个非常总要的技巧:虚拟头节点。每次对应头结点的情况都要单独处理,所以使用虚拟头结点的技巧,就可以解决这个问题。203-给你一个链表的头节点 head 和

2021-05-31 20:25:06 226

原创 leetcode系列-数组

数组理论基础数组是存放在连续内存空间上的相同类型数据的集合。数组可以方便的通过下标索引的方式获取到下标下对应的数据。举一个字符数组的例子,如图所示:需要两点注意的是 数组下标都是从0开始的。 数组内存空间的地址是连续的 正是因为数组的在内存空间的地址是连续的,所以我们在删除或者增添元素的时候,就难免要移动其他元素的地址。例如删除下标为3的元素,需要对下标为3的元素后面的所有元素都要做移动操作,如图所示:而且大家如果使用C++的话,要注意vector 和..

2021-05-31 20:17:34 469

原创 Git使用指南

目录git 基础git 版本查询git的配置获取git仓库查看文件状态跟踪新文件忽略文件查看已暂存和未暂存的修改提交更新移除文件查看提交历史撤销操作重新提交取消暂存文件本地提交回退远程仓库查看远程仓库添加远程仓库从远程仓库中抓取与拉取推送到远程仓库查看某个远程仓库远程仓库的重命名与打标签查看标签创建标签后期打标签推送标签到共享服务器上删除标签检出标签git 别名git 分支创建分.

2021-05-26 20:21:16 666

原创 pytorch开发环境安装

1 下载(直接到清华镜像下载) 链接:https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/2 进入到安装目录文件夹下,右键打开终端,终端自动进入到该目录文件夹下安装 bash ./Miniconda3-py38_4.8.3-Linux-x86_64.sh配置环境变量echo 'export PATH="~/anaconda3/bin:$PATH"'>>~/.bashrcsource ~/.bashrcconda --ver.

2021-05-26 20:20:08 137

原创 数据类型转换

数据类型转换:1、list 转 numpyndarray = np.array(list)2、numpy转 listlist = ndarray.tolist()3、 list 转 torch.Tensortensor=torch.Tensor(list)4、 torch.Tensor转 list#先转numpy,后转listlist=tensor.numpy().tolist()5、 torch.Tensor 转 numpyndarray = tenso

2021-05-26 20:13:24 130

原创 nnUNet的docker

nnUNet的docker注意点:关于数据的Task21_kidneystone文件必须挂载到/root/tmp/下1、在dockerhub上查询nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04 ,版本号对应项目运行环境的需求将其拉下来,sudo docker pull nvidia/cuda:10.2-cudnn8-devel-ubuntu18.04 ,成功后会有一个容器ID2、查看拉下来的镜像,docker images -a 改镜像名字: docker

2021-05-26 20:06:00 495

原创 单例模式,异常处理

创建单例class A(object): __instance = None def __new__(cls): if cls.__instance == None: cls.__instance = object.__new__(cls) return cls.__instance else: return cls.__instance​a = A()b = A()#a与...

2021-05-26 20:03:58 220

原创 Redis常见面试题汇总

Redis接下来内容概述: 安装redis6.0.8 redis传统五大数据类型的落地应用 知道分布式锁吗?有哪些实现方案?你谈谈对redis分布式锁的理解,删key的时候有什么问题? redis缓存过期淘汰策略 redis的LRU算法简介 01_redis两个小细节说明redis基本类型 string list set zset(sorted set) hash 其他redis的类型 .

2021-05-26 19:59:40 552

原创 Spring AOP与循环依赖

Spring01_spring的aop顺序AOP常用注解 @Before 前置通知:目标方法之前执行 @After 后置通知:目标方法之后执行(始终执行) @AfterReturning 返回后通知:执行方法结束前执行(异常不执行) @AfterThrowing 异常通知:出现异常时候执行 @Around 环绕通知:环绕目标方法执行 面试题 你肯定知道spring,那说说aop的全部通知顺序springboot或springboot2对a.

2021-05-26 19:56:55 1933

原创 JUC(LockSupport,AQS)

JUC第三季(LockSupport,AQS)01_可重入锁(递归锁)可重入锁又名递归锁,是指在同一个线程在外层方法获取锁的时候,再进入该线程的的内层方法会自动获取锁(前提是锁对象得是同一个对象),不会因为之前已经获取过还没释放而阻塞。Java中ReentrantLock和synchronized都是可重入锁,可重入锁的一个优点是可一定程度避免死锁。将字分开解释:可:可以重:再次入:进入锁:同步锁进入什么? - 进入同步域(即同步代码块/方法或显示锁锁定的代码)一个线

2021-05-26 19:54:18 204

原创 Java基础面试题

Java开发常见面试题解析01_字符串常量Java内部加载-上由于运行时常量池是方法区的一部分,所以这两个区域的溢出测试可以放到一起进行。HotSpot从JDK 7开始逐步“去永久代”的计划,并在JDK 8中完全使用元空间来代替永久代的背景故事,在此我们就以测试代码来观察一下,使用"永久代"还是“元空间"来实现方法区,对程序有什么实际的影响。String:intern()是一个本地方法,它的作用是如果字符串常量池中已经包含一个等于此String对象的字符串,则返回代表池中这个字符串的Str.

2021-05-20 10:38:17 123

Pyradiomics

pyradiomics放射学提取特征代码

2021-06-03

JVM-GC全面知识系统详解

内存结构、垃圾回收、类加载与字节码技术、内存模型

2021-05-26

空空如也

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

TA关注的人

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