自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java Arrays.sort自定义类对象数组排序

用Comparable接口,然后用要排序的类来重写Comparable的compareTo函数直接上栗子按照总成绩排序输出;实现接口:public class std implements Comparable<std> { String name; int shu; int hua; int wu; int sum; public std(String a,int b ,int c,int d) { name=a; shu=b; hua=c;

2021-12-23 22:35:11 757

原创 java的数据输出格式总结

包为java.text.DecimalFormat形式是 :double a=123.987605;new DecimaFormat(参数).format(参数);必须要加new,原因我也不知道,返回值是String类型第一个参数是格式,第二个参数是a;格式和解释如下:"0" 相当于a四舍五入只有整数部分124;"0.0"相当于a四舍五入到一位小数124.0;那以此类推:格式里面小数点后几个0就保留到几位;"#" 也相当于a四舍五入只有整数部分124;"#....

2021-12-15 22:40:18 715

原创 如何确定一个字符串中每个字符出现的次数java

之前在一网站上看到的自己写了写,本来不想发博客的 ,发现好像自己写的有点技巧性 ,就大言不惭的发一下吧分析在代码段public void text (String str){ { char ar[] = str.toCharArray();// 转换成字符数组 Arrays.sort(ar);// 数组排序 String a = new String(ar);// 重新产生字符串 for(int s=0;s<str.

2021-12-15 22:11:20 558

原创 javasor自定义排序对结构体(类)

按照总成绩对同学进行降序public class t2 { public class std{ public String xm; public int shu; public int wu; public int hua; public int sum; } class cmp implements Comparator<std>{...

2021-12-11 13:51:38 197

原创 【无标题】

冒泡排序升级版我们都是知道的,最初的冒泡排序是相邻的两元素比较大小,然后交换位置,但是每次都是执行到最后 但是对于基本有序的数列,或者后面部分是有序的数列来书说,就经行的很多次没有必要的比较最后一次比较 enchange记录最后一次比较的位置 。enchange后面全是有序的;下次比较的区间就是0--enchange,相比原来的n-i 快了不少;void bobble(int a[],int n){ int bound,enchange,temp; enchange=n-1

2021-12-10 09:31:31 473

原创 【无标题】

插入排序和插入排序升级版(希尔排序)先来初级版的插排;我先给数组1---n赋值a【0】当哨兵,当然可以不用哨兵,个人习惯时间复杂度:最好o(n)最坏o(n*n)平均也是o(n*n)稳定性好void setup(int a[],int n){ for(int i=1;i<n;i++) { a[0]=a[i+1]; int j; for(j=i;j>=0&&a[0]<a[j];

2021-12-10 09:25:43 463

原创 2021-11-12

二叉树最长路径 struct Node { 2 int value; 3 Node *left; 4 Node *right; 5 }; 6 /** 7 * 首先考虑递归结束条件 8 * 然后考虑问题分解 9 * 最后考虑问题合并10 * */11 int TreeDepth(Node *root) {12 if(root == NULL) return 0;13 int leftDept.

2021-11-14 19:54:28 85 1

原创 2021-11-12

层序建树c++给出一个序列123456789.......层序建树,这和常规的 用类实现树的功能不同,相比之下我觉得我写的更加简单没用到树的功能类,省去了很多麻烦,直接用结构体数组,原理有点类似于单链表(个人感觉)树结构struct node{ int c; node*lc,*rc;}*a [100];建树for (i = 0; i <n; i++) { a[i] = new node; //申请空间 a[i]->c = i+.

2021-11-12 09:14:04 211

原创 2021-11-11

后缀表达式求值课上只是了解了思路 ,代码没要求,我自个写了写,发现有细节问题处理不好,就是 str为数字的时候例如 16 9 4 3 + * -先1输入,再输6 ,问题是循环结束的条件,i<str.size()我是一个一个输的是不是str.size()=1,显然不是,但是str.size()是输入的全部的字符的长度;那么9怎么输入 ,9前面是空格啊后来发现了,每次输入的都是str,string类型,不读空格 ,。。。。。。。#include<iostream&...

2021-11-11 21:25:51 40

原创 2021-11-02

tree知道前中序 求后序我体验到做优化自己算法的乐趣了#include <iostream>#include <string>using namespace std; struct teer{ int date;}; void go(char a[],char b[],int n) { if(n<=0) { return ; ...

2021-11-02 18:01:44 74

原创 2021-10-17

n皇后非递归回溯分析:关键是何时回溯及如何回溯。先对N行中的每一行进行探测,找到该行中可以放置皇后的位置,具体方法是对该行的每一列进行探测,看是否可以放置皇后,如果可以,则在该列放置一个皇后,然后继续探测下一行的皇后位置。如果已经探测完所有的列都没有找到可以放置皇后的列,此时就应该回溯,把上一行皇后的位置往后移一列,如果上一行皇后移动后也找不到位置,则继续回溯直至某一行找到皇后的位置或回溯到第一行,如果第一行皇后也无法找到可以放置皇后的位置,则说明已经找到所有的解程序终止。如果该行.

2021-10-17 21:14:57 62

原创 2021-10-13

数据结构,约瑟夫环,数组和链表c++数组#include <iostream>using namespace std;bool a[100000];int main(){ int n,k,m; cin>>n>>k>>m; int num=n; //还活着的人 int number=0 ; //报数 int tab=k-1; while(num > 1){ if(!a[t

2021-10-13 15:47:28 44

原创 2021-09-11

开始学Java了Java程序的结构一开始先弄明白了package是一个项目下的包包的名字在第一行再下面是类 类的名字 然后是main方法在main方法里面开始着一些简单的算数问题输入输出输入好像要有头文件 import java.util.Scanner然后再写 Scanner cin=new Scanner(System.in)这样才能cin一个数据. 输入的格式也不一样int a ;a=cin.nextInt();double b ;b=cin.nextDouble();并且J

2021-09-11 09:00:37 60

原创 2021-05-22

二分查找(最最问题)将最最问题 即最大间隙最小值 或者最小间隙的最大值问题转化成左右边界问题左边界最小值最大化int left(int*nums, int target) { if (nums.length == 0) return -1; int left = 0; int right = nums.length; // 注意 while (left < right) { // 注意 int mid = (left + right) / 2;

2021-05-22 20:14:10 102

原创 2021-05-16

二分查找二分查找的大体模板很简单,但是上课的时候看到结束条件 下边界和上边界有时候相等有时候不等;mid有时候加一有时候不加一 ;本来感觉没什么太大的意义;后来问了百度才知道 ,细节是魔鬼!二份查找的基本框架int Search(int *num, int target) { int left = 0, right = ...; while(...) { int mid = (right + left) / 2; if (num[mid] == targ

2021-05-16 10:24:28 44

原创 2021-05-08

完全背包问题意思大概是有N件物品,每件物品的重量为w[i],价值为c[i],现有一个容量为V的背包,问如何选取物品放入背包中,使得物品的总价值最大。其中每种物品都有无穷件。#include#includeusing namespace std;int c[100],w[100];//c:存储价值 w存储消耗的容量int dp[100][100];//第一维:标号 第几件物品 第二维:当前容量// 整个DP数组表示的值是前i件物品恰好装入容量为v的背包中所能获得的最大价值int V,N;

2021-05-08 22:53:12 87

原创 2021-05-02

初见01背包大概意思就是每种货物数量1件,选择每种货物的策略是取(1)还是不取(0)。骷髅头问题和取货物没有两样;for(int i = 1; i <= n; i++){ for(int j = 0; j <= W; j++) { if(j < w[i]) { dp[i+1][j] = dp[i][j]; } else { dp[i+1]

2021-05-02 23:42:43 57

原创 2021-04-25

区间dp和背包dp初步认识区间dp区间dp个人理解是在一段区间上进行动态规划。以区间为关键来划分子问题(状态)。对于每段区间,把他们分成几段更小区间,将一个区间问题不断划分为更小的区间直至一个元素组成的区间,然后枚举他们的组合等 ,求最大区间的最优值。例题一题意:有N堆石子排成一排,每堆石子有一定的数量。现要将N堆石子并成为一堆。合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆。求出总的代价最小值。memset(dp,0,sizeof

2021-04-25 23:03:09 219

原创 2021-04-17

线性dp给我的启发最近一周做dp的题,打心底来说,思考量很大,真的不容易找出来状态转移方程。做题目前需要题解辅助 ,可能是因为做题量太少的问题 ,才十几个简单的线性dp题就想做题行云流水是不太现实,目前要做的首要目标就是多刷题,可是想了半天不会做啊 这就很难受了, 还得需要讨论和搜题解,反正就做吧 多总结见的多了 自然就慢慢开窍了吧题目总结以下给出我做出的让我对dp有点感觉的题目;## worm:自从见识了平安夜苹果的涨价后,Lele就在他家门口水平种了一排苹果树,共有N棵。 每过1分钟,毛

2021-04-17 11:13:48 154 2

原创 2021-04-04

动态规划动态规划算法通常用于求解具有某种最优性质的问题。例如(最大小,最多少)在这类问题中,可能会有许多可行解。每一个解都对应于一个值,我们希望找到具有最优值的解。其中具有的固定名词:阶段把整个复杂的问题分解成一个个的阶段 ,要是每个阶段都有最优解,那么整个问题就会有最优解;此处的每个阶段的最优解和贪心算法不同 贪心算法是按照统一的不变的标准来求最优解;动态规划是按照余下的状态(阶段解)最优来确定状态转移方程;从后往前推 一步步求解;最优子结构一个最优子结构具有这样的性质,不论过去状态和决策

2021-04-04 11:56:05 60

原创 2021-03-27

贪心思路总结发现贪心算法重在思路,如果思路清晰,知道了贪心的标准,然后按照这个标准来写码,再留意细节 基本上简单题都能ac;下面是整理的一些题目看电视问题(区间调度)例题1(目标是能看尽量多的完整节目)思路: 题目意思是说 一天时间 从0~24小时 这一个线性区间;中间有几个小区间来代表节目的播放时间 如果区间有重叠的部分 就只能选则一个;从0到24小时最多能有几个不重叠的区间;我们先按照节目的结束时间排序升序;只要结束时间早 ,我后面的选择就多 sort(jm,jm+n,cmp); .

2021-03-27 10:21:33 56

原创 2021-03-20

=本周周末总结构造函数和贪心算法本周学习了构造函数 个人感觉构造函数和普通的函数没两样 ,要说差别 ,也就是 前者没有返回值了;但是构造函数又分有参无参;所以有无参数。调用的时候形式也不一样;个人感觉规则较多,能不用则不用。构造函数与普通函数的区别:1一般函数是用于定义对象应该具备的功能。而构造函数定义的是,对象在调用功能之前,在建立时,应该具备的一些内容。也就是对象的初始化内容。2构造函数是在对象建立时由jvm调用, 给对象初始化。一般函数是对象建立后,当对象调用该功能时才会执行。3 普

2021-03-20 11:53:16 47

原创 2021-03-13周末总结1

刚刚接触到算法,真的有点菜,做贪心算法的练习的时候,第一个题 “牛叫声”,我一开始用的暴力解法,也没有什么头文件 ,就直接提交了,纯暴力,果不其然,ove rtime了,然后改变了思维 动笔算了一下,发现了数值上的规律,优化了一下,因为用了sort 我一开始也不知它的头文件,我就用的万能头 ,发现vjudge上面提交不了。所以我就动手查了资料找到了它,测试数据发现可以过去,我就提交,结果wa了,我左思右想,原因是数据类型不能是int 得是longlong,真是一波三折,必须注意细节!大一上学期学的程序设计

2021-03-13 01:41:46 66

空空如也

空空如也

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

TA关注的人

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