自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据类型与运算符-java

注意:1)java中,一个int变量占4个字节,和操作系统没有直接关系。(8个bit为一个字节Byte,1KB = 1024 Byte)2)4 个字节表示的数据范围是 -2^31 -> 2^31-1,也就大概是 -21亿 到 +21亿。

2023-10-28 18:13:04 132

原创 从尾到头打印链表(java)剑指offer

题目描述:输入一个链表,按链表从尾到头的顺序返回一个ArrayList。方法:反转链表/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }* }**/import java.util.ArrayList;public class Solu

2020-08-18 21:39:50 150

原创 字符串中的第一个唯一字符 java hashmap

给定一个字符串,找到它的第一个不重复的字符,并返回它的索引。如果不存在,则返回 -1。示例:s = “leetcode”返回 0s = “loveleetcode”返回 2class Solution { public int firstUniqChar(String s) { //用hashmap解决,把字符串中每个字符出现的次数保存在一个散列表中 HashMap<Character,Integer> code = new HashMap<C

2020-08-04 21:59:40 227

原创 汽水瓶 java

题目描述:有这样一道智力题:“某商店规定:三个空汽水瓶可以换一瓶汽水。小张手上有十个空汽水瓶,她最多可以换多少瓶汽水喝?”答案是5瓶,方法如下:先用9个空瓶子换3瓶汽水,喝掉3瓶满的,喝完以后4个空瓶子,用3个再换一瓶,喝掉这瓶满的,这时候剩2个空瓶子。然后你让老板先借给你一瓶汽水,喝掉这瓶满的,喝完以后用3个空瓶子换一瓶满的还给老板。如果小张手上有n个空汽水瓶,最多可以换多少瓶汽水喝?输入描述:输入文件最多包含10组测试数据,每个数据占一行,仅包含一个正整数n(1<=n<=100),表示

2020-08-02 21:34:44 188

原创 二叉搜索树笔记java-----查找、插入、删除

一、二叉搜索树又称二叉排序树它或者是一棵空树,或者是具有以下性质的二叉树:1.若它的左子树不为空,则左子树上所有节点的值都小于根节点的值2.若它的右子树不为空,则右子树上所有节点的值都大于根节点的值3.它的左右子树也分别为二叉搜索树二、二叉搜索树的特点1.二叉搜索树进行中序遍历,可以得到一个有序序列2.树中最左侧节点一定是最小的节点,最右侧节点一定是最大的节点三、查找-检测val是否在二叉搜索树中 public static class BSTNode{ BSTNode

2020-08-01 15:56:14 106

原创 寻找第K大 java

[编程题]寻找第K大有一个整数数组,请你根据快速排序的思路,找出数组中第K大的数。给定一个整数数组a,同时给定它的大小n和要找的K(K在1到n之间),请返回第K大的数,保证答案存在。测试样例:[1,3,5,2,2],5,3返回:2解题思路:1.从大到小进行快速排序;2.返回a[K-1];import java.util.*;public class Finder { public int findKth(int[] a, int n, int K) { quickS

2020-07-31 21:44:58 433 1

原创 前K个高频单词

给一非空的单词列表,返回前 k 个出现次数最多的单词。返回的答案应该按单词出现频率由高到低排序。如果不同的单词有相同出现频率,按字母顺序排序。示例 1:输入: [“i”, “love”, “leetcode”, “i”, “love”, “coding”], k = 2输出: [“i”, “love”]解析: “i” 和 “love” 为出现次数最多的两个单词,均为2次。注意,按字母顺序 “i” 在 “love” 之前。示例 2:输入: [“the”, “day”, “is”, “sunny

2020-07-27 19:43:04 198

原创 旧键盘 Java HashSet

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。输入描述:输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。输出描述:按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有1个坏键。示例输入:7_This_is_a_tes

2020-07-26 22:04:30 78

原创 宝石与石头 Java实现

**题目:**给定字符串J 代表石头中宝石的类型,和字符串 S代表你拥有的石头。 S 中每个字符代表了一种你拥有的石头的类型,你想知道你拥有的石头中有多少是宝石。J 中的字母不重复,J 和 S中的所有字符都是字母。字母区分大小写,因此"a"和"A"是不同类型的石头。示例 1:输入: J = “aA”, S = “aAAbbbb”输出: 3示例 2:输入: J = “z”, S = “ZZ”输出: 0class Solution { public int numJewelsInSton

2020-07-26 09:16:36 233

原创 复制带随机指针的链表(Java HashMap实现)

**题目:**给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的 深拷贝。我们用一个由 n 个节点组成的链表来表示输入/输出中的链表。每个节点用一个 [val, random_index] 表示:val:一个表示 Node.val 的整数。random_index:随机指针指向的节点索引(范围从 0 到 n-1);如果不指向任何节点,则为 null 。示例 1:输入:head = [[7,null],[13,0],[11,4],[1

2020-07-24 09:33:06 140

原创 只出现一次的数字(Java 用Set实现)

**题目:**给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4第一种方法:用Set实现class Solution { public int singleNumber(int[] nums) { Set<Integer> s=new Hash

2020-07-24 09:24:25 210

原创 部分排序,给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。

题目:给定一个整数数组,编写一个函数,找出索引m和n,只要将索引区间[m,n]的元素排好序,整个数组就是有序的。注意:n-m尽量最小,也就是说,找出符合条件的最短序列。函数返回值为[m,n],若不存在这样的m和n(例如整个数组是有序的),请返回[-1,-1]。输入: [1,2,4,7,10,11,7,12,6,7,16,18,19]输出: [3,9]class Solution { public int[] subSort(int[] array) { //将arra...

2020-07-20 00:02:18 1992

原创 替换空格(Java)剑指offer

题目描述:请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路:创建一个string对象,从后往前遍历,如果是空格,则添加“%20”,否则添加对应的字符。public class Solution { public String replaceSpace(StringBuffer str) { StringBuffer sb=new StringBuffer();

2020-06-23 10:57:47 102

原创 二维数组中的查找(Java)剑指offer

题目描述:在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。public class Solution { public boolean Find(int target, int [][] array) { if(array==null||array[0]==null){ return false;

2020-06-21 16:03:18 123

原创 翻转二叉树 递归

题目:翻转一棵二叉树。例如:输入: 4/ 2 7/ \ / 1 3 6 9输出: 4/ 7 2/ \ / 9 6 3 1public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } class Solution { public TreeNod

2020-06-14 16:47:54 143

原创 二叉树的最大深度

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。例如:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } class Solution {

2020-06-14 09:02:16 153

原创 对称二叉树(递归和迭代)

题目:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ 2 2/ \ / 3 4 4 3但是下面这个 [1,2,2,null,3,null,3] 则不是镜像对称的:1/ 2 2\ 3 3方法1:递归对称满足条件:1、两个根节点具有相同的值2、每个树的右子树和另一个树的左子树对称public class TreeNode { int val; TreeNode left;

2020-06-13 21:53:00 156 1

原创 合并两个有序链表(两种解法)

题目:将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。输入:1->2->4, 1->3->4输出:1->1->2->3->4->4public class ListNode { int val; ListNode next; ListNode(int x) { val = x; } } class Solution { pub

2020-06-13 20:49:42 795

原创 二叉树的最近公共祖先。给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”思路:第一种求解方式:如果二叉树采用双亲表示法或者孩子双亲表示法,就可以把问题转换为链表相交求交点class Solution { pub...

2020-04-23 20:01:43 475

原创 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)

例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。import java.util.Scanner;class BTNode{ public BTNode(char val){ this.val=val; } BTNode left=null;...

2020-04-22 21:03:25 2840

原创 根据一棵树的中序遍历与后序遍历构造二叉树。力扣

思路:1、从后序结果中取树根节点的内容2、在中序遍历结果中找根节点的位置rootIdx,然后将中序数据分割成左右两部分3、创建根节点,递归创建根节点的右子树,递归创建根节点的左子树class Solution { int index=0; private TreeNode BuildTree(int[] inorder,int left,int right,int[] po...

2020-04-22 13:46:53 353

原创 根据一棵树的前序遍历与中序遍历构造二叉树。力扣

思路:1、从前序结果中取树根节点的内容2、从中序遍历中找到根的位置pos,然后将中序数据分割成两部分[ left , pos )和[ pos+1 , right ]3、创建根节点。递归创建根节点的左子树递归创建根节点的右子树class Solution { int index=0;//index是为了从前序遍历中找根节点的位置 //preorder:前序遍历结果 ...

2020-04-21 07:57:22 192

原创 (最小K个数)设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。

设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。示例:输入: arr = [1,3,5,7,2,4,6,8], k = 4输出: [1,2,3,4]提示:0 <= len(arr) <= 1000000 <= k <= min(100000, len(arr))class Solution { public int[] smalles...

2020-04-18 08:16:35 836

原创 统计回文。“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。

“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。花花非常喜欢这种拥有对称美的回文串,生日的时候她得到两个礼物分别是字符串A和字符串B。现在她非常好奇有没有办法将字符串B插入字符串A使产生的字符串是一个回文串。你接受花花的请求,帮助她寻找有多少种插入办法可以使新串是一个回文串。如果字符串B插入的位置不同就考虑为不一样的办法。例如:A = “aba”,B...

2020-04-16 21:55:17 4956

原创 二叉树的层序遍历

class Solution { public List<List<Integer>> levelOrder(TreeNode root){ List<List<Integer>> ret=new ArrayList<>(); if(null==root){ return ...

2020-04-14 14:48:38 81

原创 判断一棵树是不是完全二叉树

public boolean isCompleteTree() { //空树是完全二叉树 if (null == root) { return true; } //树非空的情况 Queue<BTNode> q = new LinkedList<>(); q.offer(root); boolean is...

2020-04-13 17:07:18 145

原创 力扣 给定一个二叉树,判断它是否是高度平衡的二叉树

本题中,一棵高度平衡二叉树定义为:一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过1。思路:1、若为空树,返回true2、求root左子树高度leftHeight和右子树高度rightHeight3、检测root左右子树是否满足平衡二叉树定义即高度差的绝对值4、递归检测:root左子树是否为平衡树&&root右子树是否为平衡树class Solution { ...

2020-04-09 07:38:25 689

原创 (另一个树的子树)给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。

题目:给定两个非空二叉树 s 和 t,检验 s 中是否包含和 t 具有相同结构和节点值的子树。s 的一个子树包括 s 的一个节点和这个节点的所有子孙。s 也可以看做它自身的一棵子树。思路:1、t和s子树中的结构一样(t是s的子树)2、s和t是相同结构的树3、空树可以认为是任意二叉树的子树。若t为空树,s不为空树,则t也是s的一颗子树class Solution { //判断两树是否...

2020-04-08 07:10:20 312

原创 给定两个二叉树,编写一个函数来检验它们是否相同。(相同的树)

class Solution { public boolean isSameTree(TreeNode p, TreeNode q) { if(null==p&&null==q){ return true; } //p和q至少有一个是空树 if(null==p||null==q){ ...

2020-04-02 21:23:01 316

原创 二叉树笔记及代码实现

一、树形结构1、特点1、树是一种非线性的数据结构。2、有一个特殊的节点,称为根节点,根节点没有前驱节点。3、树是递归定义的。4、子树不相交。5、除了根节点外,每个节点有且仅有一个父节点。6、一颗 N 个节点得树有 N-1 条边。2、概念1、节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为62、树的度:一棵树中,最大的节点的度称为树的度; 如上图:树的度为6...

2020-04-01 22:01:26 350

原创 Java编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符,就输出对应的小写字符,如果是数字不输出

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int ch = 0; while ((ch = getchar()) != EOF) { if (ch >= 'a'&&ch <= 'z') { putchar(ch - 32); } if (ch...

2020-02-21 21:31:40 299

原创 完成猜数字游戏 c语言

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<stdlib.h>#include<time.h>void Menu(){ printf("*************************\n"); printf("******猜数字游戏*********\n"); prin...

2020-02-20 18:26:55 117

原创 求Sn=a+aa+aaa+aaaa+aaaaa的前n项之和,其中a是一个数字, 例如:2+22+222+2222+22222

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<math.h>int main(){ int i = 0; int n = 0;//n项 int a = 0; int tmp = 0; int sum = 0; scanf("%d%d", &a, &n); for (...

2020-02-19 15:28:55 297

原创 求出0~999999之间的所有“水仙花数”并输出

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<math.h>int main(){ int i = 0; for (i = 0; i <= 999999; i++) { int count = 0;//count表示i的位数 int tmp = i; int sum = ...

2020-02-15 17:17:57 125

原创 编写程序数一下1到100的左右整数中出现多少个数字9

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int count = 0; int i = 0; for (i = 0; i <= 100; i++) { if (i / 10 == 9)//十位为9 { count++; } if ( i % 10 == 9)//个...

2020-02-10 12:34:05 116

原创 计算1/1-1/2+1/3-1/4+1/5……+1/99-1/100的值

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int a = 1; int flg = 1; double sum = 0; for (a = 1; a <= 100; a++) { sum += flg*1.0 / a; flg = -flg; } printf("%lf"...

2020-02-10 11:49:30 1969

原创 将数组A中的内容和数组B中的内容进行交换(数组一样大)

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int arr1[5];//定义数组1 int arr2[5];//定义数组2 int i = 0; int tmp = 0; for (i = 0; i < 5; i++) { scanf("%d", &arr1[i]); ...

2020-02-09 11:43:59 62

原创 将数组A中的内容和数组B中的内容进行交换(数组一样大)

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int arr1[5];//定义数组1 int arr2[5];//定义数组2 int i = 0; int tmp = 0; for (i = 0; i < 5; i++) { scanf("%d", &arr1[i]); ...

2020-01-09 12:42:02 70

原创 Java实现扑克牌以及抓牌的实现

import java.util.ArrayList;import java.util.List;import java.util.Random;class Card{//牌的结构 Card(String suit,int rank){ this.suit=suit; this.rank=rank; } @Override p...

2020-01-06 12:51:35 836

原创 将数组A中的内容和数组B中的内容进行交换(数组一样大)

#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>int main(){ int arr1[5];//定义数组1 int arr2[5];//定义数组2 int i = 0; int tmp = 0; for (i = 0; i < 5; i++) { scanf("%d", &arr1[i]);//...

2019-12-28 11:35:09 71

空空如也

空空如也

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

TA关注的人

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