- 博客(30)
- 资源 (6)
- 收藏
- 关注
原创 手撕LeetCode(5)二叉树系列-2 二叉树的建立
二叉树的建立操作关键思路:搞清楚根节点应该做什么,后续的事情交给前/中/序的遍历框架 。构造最大二叉树(Leetcode 654题)方法:构造出根节点。寻找最大值的索引号,索引号左边的是左子树,右边的是右子树,按照这样递规执行操作。上代码:TreeNode constructMaximumBinaryTree(int[] nums){ return build(nums,0,nums.length-1);}TreeNode bulid(int[] nums,int start,int en
2020-12-05 23:52:43 146
原创 手撕LeetCode(4) 二叉树系列-1
手撕LeetCode(4) 二叉树系列-1递归的真谛:明确函数的定义,利用这个定义推导最终结果。注意:细化每个操作的实现。实践1. 翻转二叉树 (leetcode 226题)题目:镜像翻转一个二叉树方法:为前序遍历,二叉树的每个节点的左右子树的交换。上代码:TreeNode invertTree(TreeNode root){ //base case if(root==null) return null; //前序遍历 //交换节点 TreeNode temp; temp=ro
2020-12-04 14:48:45 115
原创 手撕LeetCode(3) 判断回文单链表
判断回文单链表核心思想:从中心向两边扩展。对于判断回文串,正读和倒读的结果应该相同。其中核心的做法就是将单链表进行倒着读,大致可以分为两种方法:反转链表,其中可以参考手撕LeetCode(2)中的reverse的实现,利用三个节点。ListNode reverse(ListNode head){ ListNode pre,cur,nxt; pre=NULL; cur=nxt=head; while(nxt!=NULL){ nxt=cur.next; cur.next=pre;
2020-12-03 14:03:34 149
原创 手撕LeetCode(2) 递归思维:K个一组反转链表
手撕LeetCode(2)递归思维:K个一组反转链表具体问题分析问题具体实现递归思维:K个一组反转链表利用迭代的方法反转列表。具体问题分析问题反转分为两部进行。第一步:先反转以head开头的K个元素。第二步:将K+1个元素作为head进行递归调用reverseKGroup函数。最后的操作:将以上两步的结果连结在一起。注意:递归时的base case,当不足为K个的时候,就保持不变。具体实现首先实现整个链表的反转。ListNode reverse(ListNode a){
2020-12-02 10:04:36 78
原创 手撕Leetcode(1)
链表基础实现主要操操作为建立链表,删除节点等get(index): 获取链表中第 index 个节点的值。如果索引无效,则返回-1。addAtHead(val):在链表的第一个元素之前添加一个值为 val 的节点。插入后,新节点将成为链表的第一个节点。addAtTail(val): 将值为 val 的节点追加到链表的最后一个元素。addAtIndex(index,val): 在链表中的第 index 个节点之前添加值为 val 的节点。如果 index 等于链表的长度,则该节点将附加到链表的末尾
2020-12-01 22:10:06 85
原创 最优化(一)
这里写自定义目录标题最优化-共轭梯度法最优化-共轭梯度法import numpy as npdef CG(A,b): n = b.shape[0] xs = [] rs = [] ps = [] alphas = [] x0 = np.array([2,1]) # x0 = np.random.rand(n) xs.append(x0) r0 = b - np.dot(A,x0) rs.append(r0) p
2021-04-13 22:37:46 172
原创 背包问题大总结-背包九讲
背包问题大总结/*0-1背包问题其中w代表i个物品的重量,v代表其价值其中n个物品其中m是背包的容量result: max(f[n][0-m])有 N 件物品和一个容量是 V 的背包。每件物品只能使用一次。第 i 件物品的体积是 wi,价值是 vi。求解将哪些物品装入背包,可使这些物品的总体积不超过背包容量,且总价值最大。输出最大价值。输入格式第一行两个整数,N,V,用空格隔开,分别表示物品数量和背包容积。接下来有 N 行,每行两个整数 wi,vi,用空格隔开,分别表示第
2021-01-25 14:24:28 368
原创 手撕LeetCode-数组-二分查找
手撕LeetCode-数组-二分查找二分查找的模板//二分查找int search(int[]nums,int traget){ int left=0,right=nums.length-1; while(left<=right){ int mid=left+(right-left)/2; if(nums[mid]==traget){ return mid;} else if(traget<nums[mid]){ right=mid-1;} else{
2020-12-21 21:54:18 182
原创 手撕LeetCode 层级遍历解法
层级遍历二叉树的代码结构void traverse(TreeNode root){ if(root==null) return; Queue<TreeNode> q=new LinkedList<>(); q.offer(root); while(!q.isEmpty()){ //层级遍历代码的位置 System.out.println(root.val); /*************************/ if(cur.left!=null){
2020-12-17 18:20:04 117
原创 手撕LeetCode 二叉树的序列化和反序列化
扣第 297 题「二叉树的序列化与反序列化」就是给你输入一棵二叉树的根节点 root,要求你实现如下一个类:public class Codec { // 把一棵二叉树序列化成字符串 public String serialize(TreeNode root) {} // 把字符串反序列化成二叉树 public TreeNode deserialize(String data) {}}我们可以用 serialize 方法将二叉树序列化成字符串,用 deseria
2020-12-17 16:42:37 170 1
原创 手撕LeetCode-二叉树的层次遍历方法
层次遍历的题目填充每个节点的下一个右侧节点指针II(116题)方法一填充每个节点的下一个右侧节点指针II(116题)方法一主要的思想:利用二叉树转为链表的想法进行。public Node connect(Node root){ if(root==null) return root; Queue<Node> queue=new LinkedList<>(); queue.add(root); while(!queue_isEmpty()){ int levelnum
2020-12-15 17:04:39 166
转载 Pytorch 图像分割 衡量标准
1、医学图像比赛(ISBI2017或者MICCAI2007)中常用到的几个度量指标:DICE,VOE,RVD,ASD,MSD等等;如何编程实现?符号定义: : 代表 ground truth的分割结果 :代表预测的分割结果(1)DICE(值域为[0,1]): 使用频率最高。数学定义如下,具体表示两个物体相交的面积占总面积的比值,完美分割该值为1。(2)VOE(vol...
2020-01-16 17:38:18 2373
原创 数据结构那点事-图-prim算法生成最小生成树
/* 邻接矩阵表示的图结构*/#include <stdio.h>#include <stdlib.h>typedef char VertexType; //顶点类型应由用户定义typedef int EdgeType; //边上的权值类型应由用户定义 #define MAXVEX 100 //最大顶...
2019-06-25 14:47:01 200
原创 数据结构那点事-图的遍历
#define GRAPHMAT_H#include <iostream>using namespace std;#define MAX_VERTEX_NUM 20 //图的最大顶点#define INF 10000 //最大极值ty...
2019-06-20 20:32:43 138
原创 数据结构那点事--图(邻接表)
#include<iostream>#include<stdlib.h>using namespace std;#define MAXVEX 100//邻接表//存储结构typedef char VertexType;//定义顶点的类型 typedef int EdgeType;//定义边的类型 typedef struct EdgeNode //定义...
2018-10-06 11:19:37 185
原创 数据结构那点事--线索二叉树
#include<iostream>#include<stdlib.h> using namespace std;typedef char TElemType;typedef enum { Link, Thread } PointerTag; //enum{}枚举类型 //线索二叉树 //存储结构typedef s...
2018-10-03 12:28:26 131
原创 数据结构那点事--二叉树
#include<iostream>#include<stdlib.h>using namespace std;typedef char TElemType;//二叉树的存储结构 typedef struct BiTNode{ TElemType data; struct BiTNode *lchild,*rchild; } BiTNode,*BiTree...
2018-10-03 10:26:06 105
原创 数据结构那点事--队列(链式结构)
#include<iostream>using namespace std;typedef int QEueue; #define OK 1 #define ERROR 0typedef int QElemType;typedef int Status;//队列的链式结构 /***************************在队列的链中,是使用类似于有头节点的链表...
2018-09-28 15:39:14 140
原创 数据结构那点事--队列(顺序结构)
#include&lt;iostream&gt;using namespace std;/**********************队列的链式表现队列的顺序表现形式于链表的顺序的表现形式相同在队列中比较重要的是对队列的空满的判断,以及队列长度的计算首先,空满的判断 1.定义flat,在当为空队列时,即front==rear ,flat=0; 在当为满队列...
2018-09-28 15:38:12 168
原创 数据结构那点事--栈(链式结构)
#include&lt;iostream&gt;#include&lt;stdlib.h&gt;using namespace std;typedef int ElemType; typedef int Status;#define OK 1#define ERROR 0//栈的链式存储结构 typedef struct StackNode{ ElemType data; s...
2018-09-26 19:58:46 128
原创 数据结构那点事--栈(两个栈的共享)
#include<iostream>using namespace std;typedef int ElemType;typedef int Status;#define MAXSIZE 10#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0//实现两个栈的共享利用 /******************...
2018-09-26 19:00:27 306
原创 数据结构那点事--栈(顺序结构实现)
#include&lt;iostream&gt;using namespace std;typedef int ElemType;typedef int Status;#define MAXSIZE 10#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef struct { ElemType data[...
2018-09-26 16:36:32 111
原创 数据结构那点事--线性表(循环列表)
#include&amp;lt;iostream&amp;gt;using namespace std;typedef struct DulNode{ ElemType data; struct DuLNode *prior;//直接前驱结点 struct DuLNode *next;//直接后驱节点 }DulNode,*DuLinkList; Status ListInsert(LinkL...
2018-09-25 15:43:30 161
原创 数据结构那点事--线性表(链表)
#include<iostream>#include<stdlib.h>using namespace std;//链式线性表的存储结构#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;typedef int ElemType; typedef struc...
2018-09-23 16:26:47 109
原创 数据结构那点事--线性表(顺序表)
#include&lt;iostream&gt;using namespace std;//线性表的数据结构 #define MAXSIZE 20typedef int ElemType;typedef struct{ ElemType data[MAXSIZE]={0}; int length; } Sqlist;#define OK 1#define ERROR 0#d...
2018-09-23 14:49:46 107
原创 python爬虫那点事----爬取图片
首先在item中定义两个量import scrapyclass PicItem(scrapy.Item): # define the fields for your item here like: # name = scrapy.Field() addr = scrapy.Field() #爬去图片的地址 name = scrapy.Field() ...
2018-08-26 13:40:58 177
原创 python爬虫那点事----多页爬取
踩点:通过抓包工具,通过点击下一页观察地址栏的变化 以抓取校花网为例 http://www.xiaohuar.com/list-1-1.html 当点击下一页时变成 http://www.xiaohuar.com/list-1-2.html 还需观察其结束的位置 http://www.xiaohuar.com/list-1-43.html # -*- coding...
2018-08-26 13:22:17 1249
原创 CCF题解-Z字形扫描
问题描述 试题编号: 201412-2 试题名称: Z字形扫描 时间限制: 2.0s 内存限制: 256.0MB 问题描述: 问题描述 在图像编码的算法中,需要将一个给定的方形矩阵进行Z字形扫描(Zigzag Scan)。给定一个n×n的矩阵,Z字形扫描的过程如下图所示: 对于下面的4×4的矩阵, 1 5 3 9 3 7 5 6 9 4 6 4 ...
2018-08-24 15:44:41 513 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人