自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 力扣:150. 逆波兰表达式求值

此代码为后缀表达式的计算 力扣:150. 逆波兰表达式求值

2022-06-17 21:49:11 175 3

原创 力扣 20. 有效的括号

此代码为 栈在括号匹配中的应用 顺序存储实现

2022-06-17 21:48:12 165

原创 带头结点栈的链式存储实现

带头结点栈的链式存储实现

2022-06-17 21:44:28 187

原创 栈的顺序存储实现

栈的顺序存储实现

2022-06-13 12:53:56 215

原创 带头结点双链表的基本操作的具体实现

双链表的基本操作具体实现

2022-06-12 22:28:55 169

原创 带头结点的单链表的基本操作

带头结点单链表基本操作的实现

2022-06-12 22:26:51 296

原创 线性表的顺序存储——顺序表的动态实现

顺序表的动态实现

2022-06-12 22:23:47 87

原创 线性表的顺序存储——顺序表的静态实现

线性表的简单实现

2022-06-12 22:21:54 82

原创 01背包——dp解法

/*有n个重量和价值分别为wi,vi的物品,从这些物品中挑选出总重量不超过W的物品,求所有挑选方案中价值总和的最大值。1≤n≤1001≤wi,vi≤1001≤W≤10000输入:n=4(w,v)={(2,3),(1,2),(3,4),(2,2)}W=5输出:7(选择第0,1,3号物品)因为对每个物品只有选和不选两种情况,所以这个问题称为01背包。*/题解如图:public class problem_0_1背包问题 { public static vo

2022-04-06 15:48:12 724

原创 部分背包问题——贪心

/**有n个物体,第i个物体的重量为wi,价值为vi。在总重量不超过C的情况下让总价值尽量高。每一个物体都可以只取走一部分,价值和重量按比例计算。求最大总价值注意:每个物体可以只拿一部分,因此一定可以让总重量恰好为C。*/题解:本题通过贪心思想解题,尽可能拿价值高的物品,这样放入背包的价值才最大,但是对价值排序后会使得原来每种物品的重量和价值的对应关系丢失,我们引入物品类,使得每种物品的重量和价值捆绑在一起。最后通过物品类实现Comparable接口,按照价值和重量比排序,最后再从物品数组,从

2022-04-05 15:23:00 796

原创 力扣 1561. 你可以获得的最大硬币数目——贪心

题解:贪心算法解题,因为自己每次都是要第二多的,所以每次都要让Alice拿最多,Bob拿最少,这样自己拿的才最多。如果按照每次自己拿第二多,Bob拿第三多,自己可能会拿的更少,因为第二轮自己拿的就是第5多,而不让Bob拿第三多,自己第二轮就拿的就是第三多。言简意赅就是 撑死Alice,饿死Bobstatic int maxCoins(int[] piles) { int s=0; int len= piles.length; Arrays.sort..

2022-04-04 15:19:24 111

原创 力扣 LCP 06. 拿硬币——递归+贪心思想

题解:此题应用 递归+贪心思想解题,先拿一堆,一次先拿两枚硬币再拿一枚硬币,拿完一堆再拿下一堆,直到所有硬币堆拿完class Solution { public int minCount(int[] coins) { ArrayList<Integer> res=new ArrayList<>(); //创建用于统计结果的集合 minCountCore(coins,0,res); //dfs求解,从第0堆硬币开始拿 ..

2022-04-04 13:47:48 445

原创 剑指 Offer 06. 从尾到头打印链表

解题思路:先将链表翻转,以及统计结点个数,最后再从尾部往前遍历class Solution { public int[] reversePrint(ListNode head) { ListNode pre=null; ListNode cur=head; int count=0; //记录结点个数 //先翻转链表,统计结点..

2022-04-03 21:01:38 266

原创 素数环——dfs解法

/**输入正整数n,对1-n进行排列,使得相邻两个数之和均为素数,输出时从整数1开始,逆时针排列。同一个环应恰好输出一次。n<=16如输入:6输出:1 4 3 2 5 61 6 5 2 3 4*/题解:递归+深搜+回溯思想 解题 ,相当于全排列,枚举所有的可能,再最后处理环的问题public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=

2022-04-03 18:44:23 318

原创 力扣52. N皇后 II ——递归回溯法求解

题解:通过递归回溯思想求解,尝试在棋盘上放皇后,判断尝试将皇后在棋盘上是否会冲突,皇后放置完毕则统计结果。 解题思路就是 通过4x4棋盘放置4皇后推广到nxn 放置n 皇后private static int count=0; public int totalNQueens(int n) { int[][] board=new int[n][n]; //创建棋盘 boolean[][] used=new boolean[n][n]; /..

2022-04-03 15:58:40 270

原创 面试题 08.07. 无重复字符串的排列组合

题解:利用dfs深度优先+递归回溯思想,以及开辟一个栈来临时保存当前遍历的情况,以此解题 import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Deque;import java.util.ListIterator;public class test5 { public static void main(String[] args) { String s="qwe"; ..

2022-04-03 09:21:28 89

原创 力扣 1832. 判断句子是否为全字母句

题解:a-z的ASCILL码为97-122,利用ASCILL码解题,将字符的整型ASCILL码作为数组的下标,如该字符出现,则将其下标对应值加1,最后遍历辅助数组, public boolean checkIfPangram(String sentence) { int[] chs=new int[256]; //创建辅助数组,下标作为ASCILL码 char[] chars = sentence.toCharArray(); //将字符串转化为数组 ..

2022-04-02 23:39:16 69

原创 力扣46. 全排列

import java.util.ArrayDeque;import java.util.ArrayList;import java.util.Deque;import java.util.List;public class Solution { public static void main(String[] args) { int[] a={1,2,3}; List<List<Integer>> permute = permute.

2022-04-02 22:55:06 239

原创 力扣187. 重复的DNA序列——利用hash函数暴力求解

题解: 利用hash函数去求计算子串的hash值,若子串第一次出现则将其加入到map集合中,再次出现时利用set则保存重复的子串,最后并输出class Solution { public List<String> findRepeatedDnaSequences(String s) { //官网自带命名方式 return finSubstr(s); } static List finSubstr(String s){ //寻找子串 ..

2022-04-01 14:32:04 174

原创 利用hash值进行字符串匹配

public class test10 { public static void main(String[] args) { String s="abcdabcd"; //源串 String p="bcd"; //目标串 match(p,s); } static void match(String p,String s){ long hash_p=hashVal(

2022-03-31 16:21:46 658

原创 将字符串按单词翻转

// 将字符串按单词翻转,如 here you are 翻转成 are you herepublic class test { public static void main(String[] args) { String s="here you are "; String[] words = strReverse(s).split("\\s"); //将字符串翻转后再分割,you are here 翻转后为: ereh era uoy

2022-03-31 09:42:57 325

原创 通过Map集合判断两字符串的字符集是否相同

import java.util.HashMap;import java.util.Map;import java.util.Scanner;//判断两字符串的字符集是否相同public class test {public static void main(String[] args) {String s1=“abcccddaa”;String s2=“abcd”;boolean res=check(s1,s2);System.out.println(res);}static bo

2022-03-17 20:23:49 412

原创 压缩字符串——单向扫描法

输入样例:“aabcccccaaa”输出样例:a2b1c5a3 //判断字符串中有无重复字符public class test9 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String src=sc.nextLine(); int p=1; //定义指针,初始位于字符串第二个元素 int cont=1

2022-03-15 09:08:48 61

原创 判断字符串中有无重复字符——巧用ASCILL码

public class test9 { public static void main(String[] args) { Scanner sc=new Scanner(System.in); String src=sc.nextLine(); judge(src); } static void judge(String src){ int Rem=0; //记录重复字符数

2022-03-14 21:20:42 697

原创 将数组中0所在的行和列清零

public class test9 { public static void main(String[] args) { int[][]a={ {1,2,3,4}, {5,6,7,8}, {9,0,11,12}, {13,14,15,16}, {101,102,103,104} }; int[

2022-03-14 20:37:23 375

原创 顺时针打印二维数组

/**顺时针打印二维数组输入1,2,3,45,6,7,89,10,11,1213,14,15,16101,102,103,104输出1 2 3 4 8 12 16 104 103 102 101 13 9 5 6 7 11 15 14 10*/public class test9 { public static void main(String[] args) { int[][]a={ {1,2,3,4},

2022-03-13 21:42:58 373

原创 蓝桥杯2021省赛——时间显示

题目描述小蓝要和朋友合作开发一个时间显示的网站。在服务器上,朋友已经获取了当前的时间,用一个整数表示,值为从 197019701970 年 111 月 111 日 00:00:0000:00:0000:00:00 到当前时刻经过的毫秒数。现在,小蓝要在客户端显示出这个时间。小蓝不用显示出年月日,只需要显示出时分秒即可,毫秒也不用显示,直接舍去即可。给定一个用整数表示的时间,请将这个时间对应的时分秒输出。输入描述输入一行包含一个整数,表示时间。输出描述输出时分秒表示的当前时间,格式形如 HH:

2022-03-13 20:02:25 286

原创 快速排序-单向扫描分区法

快速排序算法学习

2022-03-11 19:15:54 217

原创 蓝桥杯2021省赛 拼卡片

public class test5 { public static void main(String[] args) { solve(); } static void solve( ){ int value=0; //记录卡片的数量 for (int i = 1; i < 50000; i++) { //进行枚举 String s=i+""; for (i.

2022-03-10 20:24:55 239

原创 洛谷UVA101——线性表

#include#include#include#include<Windows.h>using namespace std;vectorblock[30];int n; //木块总个数void location(int b,int &block_place,int &block_height) {for (int i = 0; i < n; i++) {for (int j = 0; j < block[i].size(); j++) {if.

2021-12-10 21:26:11 236

原创 vi和vim编辑器

Linux VIm和Vi 的基本使用

2021-12-09 09:35:01 60

原创 Linux基本目录机构

Linux 基本目录结构1. 基本介绍2.目录用途3.总结1. 基本介绍Linux的文件系统采用级层式子的树状目录结构,最上层是根目录“/”。其目录结构就像一棵倒立生长的树2.目录用途/bin: 是Binary的缩写,这个目录存放着最经常使用的命令。/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。/home:存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。/root:该目录为系统管理员,也称作超级权限

2021-12-09 08:42:37 288

原创 通过位运算 将整数的奇偶位互换

题目:将整数的奇偶位互换/*1001 奇偶位互换后为 0110① 1001 & 32个(1010…1010) 目的:保留奇数位, 偶数位结果为0② 1001 & 32个(0101…0101) 目的:保留偶数位, 奇数位结果为0①的结果右移 ^ ②的结果左移 实现奇偶互换^ (异或操作)*/public class 将整数的奇偶位互换 {public static void main(String[] args) {int x=9;int ou=x&am

2021-11-14 21:14:28 166

原创 通过位运算 求二进制中1 的个数

方法2示意图:package test;import java.util.Random;import java.util.Scanner;public class WeiYunSuan3 {public static void main(String[] args) { Random random=new Random(); Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int count=0;.

2021-07-07 22:50:50 94

原创 通过 按位异或运算 找出落单的那个数

/* 利用按位与解题A^A=0A^0=A所以 ( arr[0]^arr[1] ^arr[2] ^…k ^ k.arr[arr.length-1] )=arr[0] ^arr[1] ^arr[2] ^arr[3] …k (arr[i]与arr[1+1]值相同,所有成对的按位与后都为0 )=k*/public class WeiYuanSuan2 {public static void main(String[] args) {int N=11;int arr[]= {1,1,2,2,3.

2021-07-07 22:02:21 124

原创 通过异或运算 找出唯一成对的数

package test;import java.util.Random;public class WeiYunSuan {public static void main(String[] args) {int N=1001;int arr[]=new int[N];Random random=new Random();for(int i=0;i<arr.length-1;i++){arr[i]=i+1; //填充数组arr[0]-arr[1000]} .

2021-07-07 21:32:44 248

原创 结构体嵌套二级指针和一级指针 释放时出现的问题

time: 2020.8.5发现问题所在,应释放main函数p指向的内存,而不是freeTeacher函数里p指向的内存#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <string.h>#include <windows.h>// 4. 重写结构体嵌套一级指针老师和二级指针学生的代码//结构体类型,每个导师有三个学生typed

2020-08-05 20:53:37 593

空空如也

空空如也

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

TA关注的人

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