自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

机器学习那些事儿-潘志锐(墨客)

分享机器学习的点点滴滴

  • 博客(18)
  • 收藏
  • 关注

原创 2021-03-02 树的递归调用

派对的最大快乐值员工信息的定义如下(树的头结点是公司的唯一老板,除了老板之外每个员工只有唯一一个直接上级,除基层员工外,每个员工都有一个或多个直接下级):class Employee {public int happy; //这名员工可以带来的快乐值List subordinates; //这名员工有哪些直接下级(不包含下级的下级)}派对的最大值:规则:1、如果某个员工来了,那么这个员工的所有直接下级都不能来2、派对的整体快乐值是所有到场员工快乐值的累加3、你的目标是让派

2021-03-02 11:24:28 329

原创 计算数字字符串转字母字符串方案数,如: 规定1和A对应、2和B对应、3和C对应... 那么一个数字字符串比如“111”可以转化为:“AAA”、“KA”、“AK” 给定一个只有数字字符组成的字符串str

1、暴力递归解: public static int number(String str) { if (str == null || str.length() == 0) { return 0; } return process(str.toCharArray(), 0); } // str[0...i-1]已经转化完了,固定了 // i之前的位置,如何转化已经做过决定了, 不用再关心 // i

2021-01-14 15:09:40 339

原创 判断一颗树是否为完全二叉树(利于二叉树的递归调用)

1)满二叉树(无缺口)2)有缺口1))左树有缺口(左树是完全二叉树、右树是满二叉树,并且左树高-右树高==1)2))左树刚好满了(左树是满二叉树、右树是满二叉树,并且左树高-右树高==1)3))右树有缺口(左树是满二叉树、右树是完全二叉树,并且左树高度与右树高度一样) public static class Node{ public int value; public Node left; public Node right;

2020-12-04 16:09:27 1039

原创 基数排序(不基于比较的排序)

基数排序过程图例:原因:先以个位排序,再被高位数字颠覆掉,再按照十位数组排序,再被百位数组颠覆掉。对上述桶利用几个简单结果替换(进行优化):算法代码:public class BaseSort { public static void main(String[] args) { int[] arr = {11, 22, 34, 54, 67, 56, 87, 2, 34, 43, 12}; sort(arr); for(i

2020-11-12 15:25:06 338 2

原创 利用归并排序思想解决小和问题

利用归并排序思想解决小和问题小和问题:在一个数组中,一个数左边比它小的数的总和,叫数的小和,所有数的小和累加起来,叫数组小和,求一个数组的组小和public class SMall { public static void main(String[] args) { int[] arr = {33,4,6,5,67,7,6,7,6,65,7,78,8,8,7,6,5,4,4,5,56,6,67,78}; int res = smallSum(arr);

2020-11-10 15:04:06 170 1

原创 利用数组创建队列结构

利用数组创建队列结构public class ArrQueue { private int[] arr; private int pushi; private int polli; private int size; private final int limit; public ArrQueue(int limit) { arr = new int[limit]; pushi = 0; polli =

2020-11-04 14:23:26 115

原创 利用双向链表实现队列和栈

利用双向链表实现队列和栈public class BlinkConversion<T> { public Node<T> head; public Node<T> tail; //从头部加节点 public void addFromHead(T value){ Node<T> cur = new Node<>(value); if(head==null){

2020-11-04 13:52:55 112

原创 算法基础(选择排序、冒泡排序、插入排序)

算法基础(选择排序、冒泡排序、插入排序),时间复杂度为 O(N^2)public class sort { public static void main(String[] args){ int[] arr = {5,4,6,5,34,56,3,4,5,65,754,6,67}; //arr = selectionsort(arr); //arr = popSort(arr); arr = insertSort(arr);

2020-11-02 13:51:16 54

原创 判断给定数组(值不重复)是否为搜索二叉树的后序排序方式排序的

判断给定数组(值不重复)是否为搜索二叉树的后序排序方式排序的前提:搜索二叉树:如果所有节点对应的左子树不空,则左子树下所有节点值均小于该子树根节点值 如果所有节点对应的右子树不空,则右子树下所有节点值均大于该子树根节点值 如 [4,5,7,10,12,15,8]为搜索二叉树的后序排序方式,如下图: public class IsPost2S...

2020-10-30 16:00:21 153

原创 判断二叉树是否为平衡二叉树

平衡二叉树定义: 空树可以作为平衡二叉树,或 任意一个节点左右子树高度差不能超过1public class IsBalance { //1、如果根节点为空节点:为平衡二叉树 //2、判断左子树是否为平衡二叉树,并且返回左子树高度 //3、判断右子树是否为平衡二叉树,并返回右子树高度 //4、比较左右子树高度判断是否为平衡二叉树,并返回是否为平衡二叉树 public boolean isBalance(Node head){ ...

2020-10-30 14:35:35 158

原创 算法基础:二叉树 前序、中序、后序

1、递归思路public class OrderRecur { public static void main(String args){ int[] array = {12,23,34,54,6,77,6,54,56,6,7,87,15,15,15}; //数组转Node Node head = array2Node(array); } //前序 public void preOrderRecur(Node head

2020-10-28 17:22:41 134

原创 如何复制多向链表

多向链表结构如public class Node{ public int value; public Node next; public Node rand; public Node(int data){ this.value = data; }}1.方法一:使用HashMap结构public class CopyFromMultiNode { public static void main(String[]...

2020-10-28 16:06:48 229 4

原创 N皇后问题:在N x N棋盘上摆N个皇后,有多少种摆法; 要求:任何两个皇后不同行、不同列,不在同一个45度斜线上,例如下面三种摆放方式不符合要求。

public class nqueen { public static void main(String[] args){ //皇后数设置为16 System.out.println(num(16)); } //计算n皇后有多少种放置位置 public static Long num(int n){ if(n < 1){ return Long.valueOf(0); ...

2020-10-22 17:35:03 1816 1

原创 判断一个链表是否为回文结构

例如 1 -> 3 -> 5 -> 3 -> 1 :为回文public class Palindrome { public boolean isPalindrome(Node head){ if(head == null || head.next == null){ return true; } //获取链表的后半部分right Node right = head; .

2020-10-22 16:01:19 70

原创 算法(队列):给定数组如arr=[2,3,4,5,77,5,6,77,66,65],计算 所有子串数组中最大值减最小值的结果不大于给定参数num 的子串个数

即 max(arr[i.....j])-min(arr[i...j])<=num所有子串个数如: arr=[1,2,3,11,2,3] num=3 ;则满足条件的所有子串数组:[1]、[2]、[3]、[11]、[2]、[3]、[1,2]、[2,3]、[2,3]、[1,2,3]public class MaxMinArrayNum { public static void main(String[] args){ int[] arr = {1,2,3,11,2,3};.

2020-10-21 18:14:40 405

原创 生成窗口最大值数组

整型数组arr, 滑动窗口大小w, 窗口从左向右滑动,依次输出窗口内最大值如数组为[3,5,6,2,3,4], 滑动窗口大小:2 则输出[5,5,6,3,4]public class MaxArray { public static void main(String[] args){ int[] arr = {6,6,8,5,9,3,3,6,7}; int[] output = max_way(arr, 3); for(int i=0..

2020-10-21 17:14:20 167

原创 算法排序-数组的partition调整

算法:数组的partition调整给定一个有序数组arr, 调整arr使得这个数组左边部分没有重复元素且升序, 而右边部分不需保证是否有序和是否重复例如,arr= [1,2,2,2,2,3,3,3,3,4,5,6,7,7,7,7,8,9] ,调整后arr=[1,2,3,4,5,6,7,8,9,2,2,2,3,7,7,7,3,3]public class ArrPatition { public static void main(String[] args){ //测试.

2020-10-21 13:47:14 219

原创 机器学习入门(手写数字体识别01)

#定义两个隐含层的神经网络,W1:输入层到第一层的权重参数,W2:第一层到第二层的权重参数,W3:第二层到输出层的权重参数#b1:输入层到第一层的偏置量,b2:第一层到第二层的偏置量,b2第二层到输出层的偏置量#__init__():初始化函数#predict(self,x):前向传播函数#loss(self,x,t):前向传播函数结束后计算的损失函数#accuracy(sel...

2019-05-19 16:22:18 2631

空空如也

空空如也

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

TA关注的人

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