自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 资源 (4)
  • 收藏
  • 关注

原创 重构字符串

题目简述给定一个字符串S,检查是否能重新排布其中的字母,使得两相邻的字符不同。若可行,输出任意可行的结果。若不可行,返回空字符串。示例 1:输入: S = “aab”输出: “aba”示例 2:输入: S = “aaab”输出: “”注意:S 只包含小写字母并且长度在[1, 500]区间内。Related Topics 堆 贪心算法 排序 字符串解题思路1.将字符串放入到stringbuilder(变量sb)中。2.从字符串的第二个数(下标为1)的时候开始往后遍历—构成第一层循环

2020-11-30 16:05:32 355

原创 螺旋矩阵(java语言实现)

题目要求给定一个正整数 n,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例:输入: 3输出:[[ 1, 2, 3 ],[ 8, 9, 4 ],[ 7, 6, 5 ]]解题思路代码:class Solution { public int[][] generateMatrix(int n) { int[][] res=new int[n][n]; int start=1; int tmp=n;

2020-11-28 11:24:57 1079

原创 最大间距

题目要求给定一个无序的数组,找出数组在排序之后,相邻元素之间最大的差值。如果数组元素个数小于 2,则返回 0。示例 1:输入: [3,6,9,1]输出: 3解释: 排序后的数组是 [1,3,6,9], 其中相邻元素 (3,6) 和 (6,9) 之间都存在最大差值 3。示例 2:输入: [10]输出: 0解释: 数组元素个数小于 2,因此返回 0。说明:你可以假设数组中所有元素都是非负整数,且数值在 32 位有符号整数范围内。请尝试在线性时间复杂度和空间复杂度的条件下解决此问题。解

2020-11-26 11:22:42 142

原创 排布二进制网格的最小交换次数

题目要求给你一个 n x n 的二进制网格 grid,每一次操作中,你可以选择网格的 相邻两行 进行交换。一个符合要求的网格需要满足主对角线以上的格子全部都是 0 。请你返回使网格满足要求的最少操作次数,如果无法使网格符合要求,请你返回 -1 。主对角线指的是从 (1, 1) 到 (n, n) 的这些格子。示例 1:输入:grid = [[0,0,1],[1,1,0],[1,0,0]]输出:3示例 2:输入:grid = [[0,1,1,0],[0,1,1,0],[0,1,1,0],[

2020-11-25 11:00:04 265 1

原创 字母异位词分组

题目要求给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”]输出:[[“ate”,“eat”,“tea”],[“nat”,“tan”],[“bat”]]说明:所有输入均为小写字母。不考虑答案输出的顺序。解题思路题目看起来是分类问题,首先有考虑用数组,list,map来存放,之后通过比较使用MAP合适,因为map中key可以存放一类字符串,如eat,a

2020-11-24 10:36:15 107

原创 区块链-pow(简单演示)

区块链基础-共识算法pow代码实现步骤一:区块的结构体包括,前一个区块的hash值,当前区块的hash值,时间戳,难度系数,区块高度,交易信息,挖矿随机值步骤二:生成当前区块的hash值。由区块高度,随机值,区块难度,时间戳,经过shar256算法得出步骤三:创造创世纪块(区块链的第一个块)。步骤四使用难度系数挖出下一区块package mainimport ( "crypto/sha512" "encoding/hex" "fmt" "strconv" "time")

2020-11-23 19:24:24 988

原创 旋转图像

题目要求给定一个 n × n 的二维矩阵表示一个图像。将图像顺时针旋转 90 度。说明:你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。示例 1:给定 matrix =[[1,2,3],[4,5,6],[7,8,9]],原地旋转输入矩阵,使其变为:[[7,4,1],[8,5,2],[9,6,3]]示例 2:给定 matrix =[[ 5, 1, 9,11],[ 2, 4, 8,10],[13, 3, 6, 7],[1

2020-11-23 10:44:04 302

原创 最后一个单词的长度

题目要求给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s,返回其最后一个单词的长度。如果字符串从左向右滚动显示,那么最后一个单词就是最后出现的单词。如果不存在最后一个单词,请返回 0 。说明:一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。示例:输入: “Hello World”输出: 5解题思路方法1:首先想到的就是将字符串按照空格进行分割,放入数组中。如果是空格字符串,则数组长度为0;返回数组最后一个元素的值长度即可。代码展示:class Solution {p

2020-11-22 15:55:09 231

原创 最大子序和

题目要求给定一个整数数组 nums ,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。示例:输入: [-2,1,-3,4,-1,2,1,-5,4]输出: 6解释: 连续子数组 [4,-1,2,1] 的和最大,为 6。解题思路题目的理解并不难,介绍一下数学思想和处理逻辑1.遇到转折数字:转折数字的定义,当值由一个子序列由前向后加的途中,累加到该数且和小于该数本身时,则该数定义为转折数,则子序列重新以该数为起点形成新的子序列如 -2+1<1 定义1为转折数

2020-11-21 15:39:22 98

原创 我的日程安排I II

I题目要求实现一个 MyCalendar 类来存放你的日程安排。如果要添加的时间内没有其他安排,则可以存储这个新的日程安排。MyCalendar 有一个 book(int start, int end)方法。它意味着在 start 到 end 时间内增加一个日程安排,注意,这里的时间是半开区间,即 [start, end), 实数 x 的范围为, start <= x < end。当两个日程安排有一些时间上的交叉时(例如两个日程安排都在同一时间内),就会产生重复预订。每次调用 MyC

2020-11-21 15:20:42 129

原创 跳跃数字

题目要求给定一个非负整数数组,你最初位于数组的第一个位置。数组中的每个元素代表你在该位置可以跳跃的最大长度。你的目标是使用最少的跳跃次数到达数组的最后一个位置。示例:输入: [2,3,1,1,4]输出: 2解释: 跳到最后一个位置的最小跳跃数是 2。从下标为 0 跳到下标为 1 的位置,跳 1 步,然后跳 3 步到达数组的最后一个位置。说明:假设你总是可以到达数组的最后一个位置。解题思路1.临界情况,当数组只有一个元素的时候,根据题目要求则直接返回0。2.一般情况,从当前位置看,如

2020-11-16 11:32:18 1430

原创 字符串相乘

题示:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。示例 1:输入: num1 = “2”, num2 = “3”输出: “6”示例 2:输入: num1 = “123”, num2 = “456”输出: “56088”说明:num1 和 num2 的长度小于110。num1 和 num2 只包含数字 0-9。num1 和 num2 均不以零开头,除非是数字 0 本身。不能使用任何标准库的大数类型(比如

2020-11-13 16:36:50 401

原创 加一

题示给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。示例 2:输入:digits = [4,3,2,1]输出:[4,3,2,2]解释:输入数组表示数字 4321。示例 3:输入:digits = [0]输出:[1]提示:1 <= dig

2020-11-13 16:04:27 66

原创 缺失的第一个正数

题目要求给你一个未排序的整数数组,请你找出其中没有出现的最小的正整数。示例 1:输入: [1,2,0]输出: 3示例 2:输入: [3,4,-1,1]输出: 2示例 3:输入: [7,8,9,11,12]输出: 1提示:你的算法的时间复杂度应为O(n),并且只能使用常数级别的额外空间。Related Topics 数组解题思路一:先排除掉边界情况当数组为空,或者排好的数组,最小大于1,最大值小于1,返回1二:考虑一般情况1.根据题目要求先将数组排序2.找出正整数之前的一

2020-11-11 11:32:47 76

原创 外观数列

问题描述给定一个正整数 n ,输出外观数列的第 n 项。「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述。你可以将其视作是由递归公式定义的数字字符串序列:countAndSay(1) = “1”countAndSay(n) 是对 countAndSay(n-1) 的描述,然后转换成另一个数字字符串。前五项如下:111211211111221第一项是数字 1描述前一项,这个数是 1 即 “ 一 个 1 ”,记作 “11”

2020-11-10 18:52:57 130

原创 搜索插入位置

题目要求给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。你可以假设数组中无重复元素。示例 1:输入: [1,3,5,6], 5输出: 2示例 2:输入: [1,3,5,6], 2输出: 1示例 3:输入: [1,3,5,6], 7输出: 4示例 4:输入: [1,3,5,6], 0输出: 0Related Topics 数组 二分查找解题思路(图解)代码:class Solution {publi

2020-11-09 10:10:43 92

原创 在排序数组中查找元素的第一个和最后一个位置

题目要求给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。你的算法时间复杂度必须是 O(log n) 级别。如果数组中不存在目标值,返回 [-1, -1]。示例 1:输入: nums = [5,7,7,8,8,10], target = 8输出: [3,4]示例 2:输入: nums = [5,7,7,8,8,10], target = 6输出: [-1,-1]解题思路题中要求时间复杂度度O(log n) ,提示为二分查找

2020-11-08 15:38:53 372

原创 搜索旋转排序数组

题目要求给你一个升序排列的整数数组 nums ,和一个整数 target 。假设按照升序排序的数组在预先未知的某个点上进行了旋转。(例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请你在数组中搜索 target ,如果数组中存在这个目标值,则返回它的索引,否则返回 -1 。示例 1:输入:nums = [4,5,6,7,0,1,2], target = 0输出:4示例 2:输入:nums = [4,5,6,7,0,1,2], target = 3输

2020-11-07 09:48:50 106

原创 数组下一个排列

算法要求介绍实现获取下一个排列的函数,算法需要将给定数字序列重新排列成字典序中下一个更大的排列。如果不存在下一个更大的排列,则将数字重新排列成最小的排列(即升序排列)。必须原地修改,只允许使用额外常数空间。以下是一些例子,输入位于左侧列,其相应输出位于右侧列。1,2,3 → 1,3,23,2,1 → 1,2,31,1,5 → 1,5,1Related Topics 数组解题思路1.从数组的倒数第二个开始循环(i为变量)2.解题的思路就是考虑当前位置与后面位置的大小3.因为循环的关系,

2020-11-05 11:35:51 252 3

Redis基础学习-整理笔记

Redis的介绍及Redis常见的操作。Redis的介绍及Redis常见的操作。Redis的介绍及Redis常见的操作。

2020-11-28

数据库多表查询练习.txt

数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。 数据库是以一定方式储存在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合,可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、查询、更新、删除等操作

2020-01-31

java封装类.txt

依student对象做类,描述了成员变量以及成员方法;具体的方法实现在后续更新

2019-09-18

空空如也

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

TA关注的人

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