自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

原创 基于三维医学影像数据的CAM可视化——PyTorch实现

基于三维医学影像数据的CAM可视化——PyTorch实现

2023-01-11 22:14:59 1971 11

原创 MICCAI2021论文合集

2021年的MICCAI论文合集来了!!!在官网下完了以下合集:百度网盘链接:链接:https://pan.baidu.com/s/1xJQ1uzVinD0t-BBmLs-V3Q提取码:xnyd如果有人搞Alzheimer disease classification的可以一起交流!!!...

2021-09-28 13:12:59 6687 28

原创 MRI图像切片(nii格式转2D)

代码参考:将一个MRI(nii格式)数据进行切片想要批量抽取MRI数据的几个切片,借鉴了上述代码的Python版本,原始代码抽取了全部切片。本次实验主要是抽取sMRI的横断面(axial)方向的其中30张切片,数量根据自己需求可自行设置。import scipy, numpy, shutil, os, nibabelimport sys, getoptimport imageiodef niito2D(filepath): inputfiles = os.listdir(filep

2021-03-08 20:15:54 6229 11

原创 MRI图像预处理流程

最近在学习医学影像处理,主要是基于sMRI,记录一下一些预处理过程,希望对一些人有帮助。首先是ACPC校准:前连合(anterior commissure, AC)后缘中点 至 后连合(posterior commissure, PC)前缘中点 的连线,又称AC-PC线。脑立体定向手术和X-刀、Y-刀治疗多以此线为准,故脑立体定位断层解剖研究多以此线为基线。选用的MATLAB下的SPM12工具,在网上找的批处理代码:参考文章——ACPC看一下效果,原图为:原始数据ACPC校准:

2020-12-09 22:03:29 7258 6

原创 14. 最长公共前缀

题目地址:14. 最长公共前缀本来的最初的想法是找出最短的字符串然后暴力匹配出最长的公共前缀,但一直报越界的问题,也不知道哪里的问题,这里看了官方的答案,用到了两个方法,indexOf和substring,还是对于一些方法不熟悉,没想到……class Solution { public String longestCommonPrefix(String[] strs) { ...

2020-04-13 17:53:22 85

原创 17. 电话号码的字母组合

题目地址:17. 电话号码的字母组合这题有点难到我,每次遇到一个数字就判断一下循环?显然过于冗余,那就想到将每个数字对应的字母放进集合,想到键值对存储,但一个键对应的值又不止一个,那就用一个数组存储,之后再循环取值。用到了递归:import java.util.ArrayList;import java.util.List;class Solution { pub...

2020-04-12 18:02:32 117

原创 24. 两两交换链表中的节点

题目地址:24. 两两交换链表中的节点看到这题目也没想太多,常规思维大概就是这样:class Solution { public ListNode swapPairs(ListNode head) { if (head == null || head.next == null) return head; ListNode p...

2020-04-12 16:23:59 83

原创 11. 盛最多水的容器

题目地址:11. 盛最多水的容器暴力解法,操作猛如虎,我的代码:class Solution { public int maxArea(int[] height) { int tmp = 0; int max = 0; for (int i = 0; i < height.length - 1; i++) { ...

2020-04-12 13:53:54 119

原创 源码——SpringBoot构建电商基础秒杀项目

花五天时间敲完了慕课网的一个小项目,还是学到了很多东西的,在这里贴出源码,包含数据库脚本文件,有需要自取:源码地址:SpringBoot构建电商基础秒杀项目截图:...

2020-04-05 23:06:31 363

原创 Java杂谈——Java多线程与并发-原理

synchronized线程安全问题的主要原因:存在共享数据(也称临界资源) 存在多条线程共同操作这些共享数据解决这些问题的根本办法:同一时刻有且只有一个线程在操作共享数据,其他线程必须等到该线程处理完毕再对共享数据进行操作。互斥锁的特性:互斥性:同一时间只允许一个线程持有某个对象锁,互斥性也称操作的原子性 可见性:确保在锁被释放之前,对共享变量所做的修改,对于随后获得该...

2020-03-30 22:39:21 276

原创 Java杂谈——Java多线程与并发

目录进程和线程的区别Java进程和线程的关系Thread中的start和run方法的区别Thread和Runnable是什么关系如何给run()方法传参,主要有三种如何实现处理线程的返回值,实现方式主要有三种线程的状态sleep和wait的差别notify和notifyAll的区别yield如何中断线程进程和线程的区别:线程不能开作独立应用,而进...

2020-03-30 13:16:12 124

原创 62. 不同路径

题目地址:62. 不同路径动态规划:初始化一个m行n列数组,数组里的数据表示到达这个点存在的路径条数。首先需要考虑边界,因为只能向下或向右,所以边界值都为1,即位于起始点的那一行和那一列数字都是1。到达终点前的一步有两种可能,一种是向右,一种向下,将两种可能的路径条数相加,得到总路径条数:class Solution { public int uniquePaths(int m,...

2020-03-30 10:11:33 82

原创 Java杂谈——集合(三)

1.List、Set、Map三者区别List:存储一组不唯一、有序的对象,可有多个元素引用相同对象。 Set:不允许重复元素,不会有多个元素引用相同对象。 Map:使用键值对存储对象。两个Key可引用相同对象,但Key不能重复2.ArrayList和LinkedList区别首先两个都是不同步的,都不保证线程安全。 ArrayList LinkedList 底层数...

2020-03-29 22:23:45 143

原创 69. x 的平方根

题目地址:69. x 的平方根看到这个题:class Solution { public int mySqrt(int x) { if (x == 1) return 1; for (int i = 1; i < x; i++) { if(i*i <= x && (i+1)...

2020-03-29 15:51:30 104

原创 35.搜索插入位置

题目地址:搜索插入位置心想这也太简单:class Solution { public int searchInsert(int[] nums, int target) { for (int i = 0; i < nums.length; i++) { if (nums[i] == target || nums[i] > targ...

2020-03-29 11:50:46 81

原创 58.最后一个单词的长度

题目地址:最后一个单词的长度class Solution { public int lengthOfLastWord(String s) { //end到达字符串末尾 int end = s.length() - 1; //先将字符串最后一个单词后面的空格去掉 while(end >= 0 && s...

2020-03-29 11:11:58 100

原创 61.旋转链表

题目地址:旋转链表起初想到的思路是不断将最后的节点用头插法插入链表,直到插入k次class Solution { public ListNode rotateRight(ListNode head, int k) { if(head == null || k==0) return head; ListNode tmp = h...

2020-03-28 16:21:58 86

原创 70.爬楼梯

题目地址:爬楼梯之前有印象,大概是这样:class Solution { public static int climbStairs(int n) { if (n==1) return 1; else if (n==2) return 2; else retur...

2020-03-28 14:59:51 88

原创 66.加一

题目地址:加一感觉很简单,一顿操作猛如虎:class Solution { public int[] plusOne(int[] digits) { int len = digits.length; if(digits[len-1] < 9) digits[len-1] +=1; else{ ...

2020-03-28 14:28:17 126

原创 9.回文数

题目地址:回文数看到这个题目的第一反映还是将整数转换为字符串,然后将其前面一半和后面一半进行比较:class Solution { public boolean isPalindrome(int x) { //如果是负数,不是回文数 if (x < 0) { return false; } else {...

2020-03-28 13:14:54 141

原创 820.单词的压缩编码

题目地址:单词的压缩编码主要思路就是:判断新的字符串是否是之前已有字符串的后缀,如果是,则不予考虑,进入下一循环,最后返回每个字符串长度加一的总和。其中用到了集合Set,它的特点是不能包含重复元素;String类的substring()方法有两种用法:public String substring(int beginIndex)或public String substri...

2020-03-28 11:47:16 117

原创 20.有效的括号

题目地址:有效的括号这道题第一反应就是使用栈,遇到左括号压栈,遇到右括号取栈顶元素看是否匹配,若匹配将栈顶元素出栈继续匹配,若不匹配直接返回false。我写了一个比较粗暴的方法:class Solution { public boolean isValid(String s) { Stack<Character> chs = new Stack<...

2020-03-27 23:51:23 82

原创 914.卡牌分组

题目地址:卡牌地址求得数组中每个数字出现的次数,然后求最大公约数,如果大于等于2,则返回true,否则false。由于怎么求最大公约数忘了,查了一下:class Solution { public boolean hasGroupsSizeX(int[] deck) { int[] chs = new int[10000]; //计数,将每个数...

2020-03-27 16:30:33 116

原创 7.整数反转

题目地址:整数反转看到这个题目的第一反应就是是不是可以将整数转换成字符串,或者链表,之前做过反转链表的题,但考虑到可能效率低且可能会用到库函数。就想着取模和取余来解决:class Solution{ public int reverse(int x){ int result = 0; while(x!=0){ int tem...

2020-03-27 13:49:12 74

原创 2.两数相加

题目地址:两数相加一开始看着题目有点绕,后来大概明白就是从前到后节点相加,当大于9时取余赋值,并在之后运算时进一,结果采用尾插法。class Solution { public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = new ListNode(-1); L...

2020-03-27 12:01:53 177

原创 27.移除元素

题目地址:移除元素看到这个题目的第一反应,就是新建一个新数组将需要的元素复制进去,去掉不需要的元素,但这里明确要求不能使用额外的数组空间,就会想到将需要移除的元素覆盖掉,用两个指针,起始点相同,一个指针移动时跳过需要移除的元素,直到移动到需要保留的元素位置,将值赋给另外一个指针,每次覆盖完成共同前进一步,直到快的指针到达末尾。class Solution { public int...

2020-03-27 00:50:58 79

原创 21.合并两个有序链表

题目地址:合并两个有序链表这个题目之前考研复习的时候用C写过,现在用Java实现以下:class Solution { public ListNode mergeTwoLists(ListNode l1, ListNode l2) { ListNode head = new ListNode(-1); ListNode pre = head; ...

2020-03-26 20:44:17 70

原创 1.两数之和

题目地址:两数之和一开始反正什么都没考虑,暴力破解,我的代码就是这样:class Solution { public int[] twoSum(int[] nums, int target) { int[] chs =new int[2]; for(int i=0;i<nums.length;i++){ for(int...

2020-03-26 18:54:55 82

原创 Java面试题(一)

1.对比Exception和Error,运行时异常和一般异常有什么不同?Exception和Error都继承了Throwable类,只有Throwable类的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本类型。Exception是程序可以预料的意外情况,应该被捕获并进行处理;Error是会导致程序处于非正常、不可恢复的状态的情况,不便于也不需要捕获。Exc...

2020-03-26 16:31:07 69

原创 Java杂谈——集合(二)

集合SetSet不保存重复元素。Set最常用的用途是测试归属性,可以用来查询某个对象是否在一个Set中,通常会选择HashSet,该实现针对快速查找进行了优化。Set具有与Collection相同的接口,没有额外的功能,实际上,Set就是一个Collection,只是行为不同。存放Integer对象的HashSet:import java.util.*;public clas...

2020-03-26 15:24:21 152

原创 Java杂谈——集合(一)

集合的存在是为了解决什么问题?大概就是在编程的时候可以在任意时刻和任意位置创建任意数量的对象。数组是保存一组对象的有效方式,但数组有固定的尺寸大小,且在一般情况下,写程序时不知道将需要多少对象,或者是否需要更复杂的方法来存储对象,这一点数组就存在诸多限制。java.util 库提供了一套相当完整的 集合类 (collection classes)来解决此问题。其中基本类型有 List、...

2020-03-25 18:07:56 151

原创 位运算

目录1.如何用移位操作实现乘法运算2.如何判断一个数是否为2的n次方3.如何求二进制中1的个数1.如何用移位操作实现乘法运算把一个数向左移动 n 位相当于把该数乘以 2 的 n 次方,因此当乘法运算中的某个数字满足这个特点,可用移位操作代替乘法运算,提高效率。public class Muti { public static int powerN(int m,in...

2020-03-25 15:00:34 161

原创 栈与队列

目录1.如何实现栈2.如何用O(1)时间复杂度求栈中最小元素3.如何实现队列4.如何实现用两个栈模拟队列操作1.如何实现栈可以采用数组与链表这两种方法来实现栈。给出链表的方法实现栈:class Node<E> { Node<E> next=null; E data; public Node(){} publi...

2020-03-24 18:57:26 83

原创 链表(二)

目录1.如何从尾到头输出单链表2.如何寻找单链表的中间节点3.如何检测一个链表是否有环4.如何在不知道头指针的情况下删除指定节点5.如何判断两个链表是否相交1.如何从尾到头输出单链表看到这个问题,最直接地想法就是先反转链表,再输出,在上一篇博客有实现这个方法,但需要额外的操作。还有一种方法,就是利用栈。每经过一个节点,把该节点压入栈,遍历完链表后,从栈顶开始输出节点...

2020-03-24 16:23:18 111

原创 链表(一)

1.如何实现单链表的增删操作链表是一种递归的数据结构,它或者为空(null),或者指向一个节点的引用,该节点含有一个泛型的元素和一个指向另一条链表的引用。以下给出链表的基本操作:public class Node { int data; Node next = null; public Node(int data){ this.data=dat...

2020-03-24 12:53:10 143

原创 Java面试基础——数据库原理

1.SQL语言功能有哪些SQL是结构化查询语言(Structured Query Language)的缩写,功能包括数据查询、数据操纵、数据定义和数据控制4个部分。数据查询是最常见的操作,通过select语句得到所需信息。以下是基本SQL语句使用方式:基本SQL语句的使用方式 关键字 描述 语法格式 数据查询 select 选择符合条件的记录 ...

2020-03-23 12:29:53 197

原创 Java基础——Java数据库操作

1.如何通过JDBC访问数据库JDBC用于在Java程序中实现数据库操作功能,它提供了执行SQL语句、访问各种数据库方法,并为各种不同数据库提供统一的操作接口,java.sql包中包含了JDBC操作数据库的所有类。通过JDBC访问数据库一般有如下步骤:1)加载JDBC驱动器。将数据库的JDBC驱动加载到classpath中,在基于JavaEE的Web应用开发中,通常把目标数据库产品的...

2020-03-21 16:49:06 650

原创 Java基础——多线程

在这之前可先参照之前的文章,初识多线程1.为什么使用多线程?Java语言中,线程有4中状态:运行、就绪、挂起和结束。多线程的使用为程序研发带来了巨大便利。1)使用多线程可减少程序的响应时间,同时使程序具备更好的交互性。2)与进程相比,线程的创建和切换开销更小。运行于同一进程内的线程共享代码段、数据段,线程的启动或切换比进程要少很多。同时多线程在数据共享方面效率非常高。3)...

2020-03-20 16:55:01 145 1

原创 Java基础——容器

参考Java程序员面试笔试宝典:1.Java Collections框架是什么Java Collections框架包含了大量集合接口以及这些接口的实现类和操作它们的算法(如排序、查找、反转、替换、复制、取最小元素、取最大元素等)。具体而言,主要提供了List(列表)、Queue(队列)、Set(集合)、Stack(栈)和Map(映射表,存放键值对)。其中,List、Queue、Set、St...

2020-03-19 13:35:13 124

原创 Java基础——Java平台与内存管理

参考Java程序员面试笔试宝典:1.为什么说Java是平台独立性语言平台独立性指的是在一个平台上编写和编译的程序,可在其他平台上运行。保证Java具有平台独立性的机制是“中间码”和“Java虚拟机(JVM)“Java程序被编译后生成一个”中间码“,不同硬件平台会装有不同JVM,负责把中间码翻译成硬件平台可以执行的代码。因此JVM不具有平台独立性,而是与硬件平台相关。解释执行分三...

2020-03-18 18:12:57 138

空空如也

空空如也

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

TA关注的人

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