自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 贪心算法总结

从问题的某一初始解出发: while (朝给定总目标前进一步){利用可行的决策,求出可行解的一个解元素。}由所有解元素组合成问题的一个可行解;

2021-08-17 21:35:10 191

原创 前缀和算法

前缀和算法含义:前缀和实际上就是对于长度为n的数组,我们新建立一个数组长度为n+1,第i个元素的值为前i个元素的和(包括第i个元素)。特点:1、前缀和数组比原数组多一个长度。2、前缀和的第0个元素的值为0。3、根据前缀和数组的特点,求前缀和时。我们只需要用第i个元素的值+第i-1个前缀个数组的值就可能得到第i个前缀和数组的值。(这也是一种动态规划的思想)。应用:前缀和算法可以解决一些在数组中与连续有关的问题。题目第一题和为K的子数组代码class Solution { public i

2021-08-16 02:08:20 393

原创 不同类型的动态规划问题简单区分

目前,就动态规划已经与到了很多类型的题目但现在最难理解的还是一下两个问题。零钱兑换2 这个问题就是让我们求满足所给整数的零钱组合。爬楼梯 但这个问题需要稍微做一下变式,我们能爬的阶数不仅仅局限于1和2了。给定我们一个非空数组,数组内的所有数字都是我们能够直接爬的阶数。。求能爬上顶点的方案这两个问题显然都能利用动态规划的思想去解决。其代码完成后的差别也仅在内外循环的先后顺序循环顺序的改变影响的是动态数组更新方式的不同。第一题代码class Solution { public int

2021-08-14 23:49:36 198

原创 三种有序查找方式

二分查找package 查找;public class Binarysearch { public static void main(String[] args) { int[] a=new int[]{2,5,6,8,67,58,46}; System.out.println(Binarysearch.search(a,58)); } public static int search(int a[],int key) { int low=0; int high=a.length

2021-08-09 21:26:13 461

原创 java创建邻接矩阵

遍历后面再加 ,目前先写下创建。package 图;import java.util.Scanner;public class Graph {//无向图 int edgenum,vexnum;//边数和点数 char[] vexs;//顶点表 int[][] arc;//邻接矩阵 public Graph(int vex,int edgenum) { this.vexs=new char[vex]; this.arc=new int[vex][vex]; } public v

2021-08-04 18:27:23 786

原创 数据结构队列的链式结构功能及实现

package 队列链式存储结构及功能实现;public class LinkedQueue { static class LinkedNode{ int data; LinkedNode next; public LinkedNode(int data) { this.data=data; } } LinkedNode front,rear; int size; public LinkedQueue() { front=null; rear=null; si

2021-07-30 17:31:35 115

原创 数据结构栈的链式结构代码及其部分功能实现

package 栈链式结构及功能实现;/*有了size 就能遍历整个链栈了。 * * */public class LinkedStack { static class LinkedNode{ int data; LinkedNode next; public LinkedNode(int data) { this.data=data; } } LinkedNode top;//指向栈顶,链栈的第一个节点 int size;//链栈长度 public Link

2021-07-29 17:42:05 134

原创 数据结构栈的顺序结构代码及其部分功能实现

package 栈顺序结构及功能实现;/*删除 插入只能在栈顶操作,需要个指针,每次操作检查下是不是空栈,然看再看看栈满没满*/public class Stack { int top;//栈顶指针 int[] stack=new int[50]; public Stack(){ top=-1;//初始化栈顶指针 } //进栈 public void push(int data){ if(top>=stack.length-1) { return ; } e

2021-07-29 16:36:05 122

原创 数据结构线性表之双向循环链表结构代码及其部分功能实现

package 线性表双向循环链表结构及其功能实现;/*优化了下 插入方法,选择的应该是第几个空位插入,双向循环链表,能够正逆两个方向显示数据*******/public class DoubleCircularLinkedList {class ListNode {int data;ListNode prev;//指向前驱ListNode next;//指向后继public ListNode(int data) {this.data = data;}} ListNode

2021-07-28 23:12:28 146

原创 数据结构线性表之循环链表结构代码及其部分功能实现

package 线性表循环链表结构及功能实现;/*链表基本功能已经实现,基本上基于单链表来实现的。循环链表的特殊性,让它在遍历时最后一个数据必须单独 * 显示。 * 既然方法名字叫做插入,那肯定是在两个数字之间,那头尾指针都不会因为插入操作而改变, * 所以链表的循环不会发生错误。 * 删除那里考虑的要全面一点。 * 其他的基本上就是单链表的内容了 * * * * * */public class CircularLinkedList { class ListNode

2021-07-28 20:31:16 156

原创 数据结构线性表之链式结构代码及其部分功能实现

单链表代码package 线性表单链表结构及功能实现;/*程序最大的好处 在于从链表类中创建了一个结点内部类,创建嵌套类的对象 不需要对象名 直接使用.next * * 程序仍可改进点:程序虽然存在头指针了,但我们仍可以申请一个空节点始终作为程序的第一个节点,这样能够 * 使得程序在插入 与 删除等操作时 第一节点 与其他节点操作保持一致。减少代码量。 * * */public class LinkedList {//补充链表更新数值的功能 static class ListNod

2021-07-27 19:19:13 181

原创 数据结构之线性表顺序结构及功能实现

代码实现package 线性表顺序结构及功能实现;import java.util.Scanner;public class List { public static void main(String args[]) { int[] a=new int[20];//数组长度 int length=10;//线性表长度(数据个数) Scanner sc=new Scanner(System.in); for(int i=0;i<length;i++) { System.out

2021-07-27 16:09:42 135

原创 三种排序方法

直接插入排序package 三种排序方法;public class 直接插入排序 { public static void main(String args[]) { int array[]= {7,8,45,231,234,23,98,11}; int temp; int j; for(int i=0;i<array.length-1;i++) { temp=array[i]; j=i-1; while(j>=0&&array[j]<temp)

2021-05-21 16:58:51 191

原创 将一个正整数分解质因数。

**将一个正整数分解质因数。例如:输入90,打印出90=233*5。程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2)如果n <> k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。import java.util.Scanner;public class MainDemo

2021-04-14 16:30:42 326

原创 java求素数

要求统计给定整数MM和NN区间内素数import java.util.Scanner;public class Test { public static void main(String args[]) { su(); } public static void su() { int mm, nn; Scanner sc = new Scanner(System.in); System.out.println("请输入mm和nn"); mm = sc.nextInt();

2021-04-10 10:38:49 100

原创 java常见数组

public class 不等长数组 { public static void main(String args[]){ int a[][]=new int[9][]; int i; for(i=0;i<a.length;i++) a[i]=new int[i+1]; for(i=0;i<a.length;i++) { for(int j=0;j<a[i].length;j++) { System.out.print((i+1)*(j+1)+" "); }

2021-03-23 12:15:07 147

原创 c语言排序方法(快速排序 ,冒泡排序,选择排序,哈希表)。

**C语言快速排序**#include <stdio.h>#include<string.h>void quick_sort(int *a,int n){ int i,j,p,temp; if(n<2)return; p=a[n/2];//获取数组基准值 for(i=0,j=n-1;;i++,j--) { while(a[i]<p)//对元素进行遍历,假设左边的数据没有p中保存的元素大,那么继续寻找,并且把i自增,当找到比p大的或者相等得则停止

2021-01-09 18:51:05 453

空空如也

空空如也

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

TA关注的人

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