![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
开心比较堵
要爱具体的人,不要爱抽象的人,要爱生活,胜于爱生活的意义!
展开
-
383. 赎金信(**)
最开始想到的是通过双for来遍历ransomNote 和magazine,然后再逐一比较是否相等,但是在相等后却一直没有想出好的办法来判断进行下一步,java的API中也没有找到一个可以删除字符串的api,最后放弃这个方法。原创 2022-10-25 21:56:10 · 404 阅读 · 0 评论 -
纸张尺寸--
API说明从index处到尾截取字符串字符串转整数十进制转6进制返回用第二个参数指定基数表示的第一个参数的字符串表示形式。原创 2022-10-24 21:09:22 · 109 阅读 · 0 评论 -
罗马数字---蓝桥杯
Java HashMap方法APIAPI说明将键/值对添加到 hashMap 中map.get()获取指定 key 对应对 value。原创 2022-10-14 11:55:13 · 431 阅读 · 1 评论 -
删除字符--蓝桥杯
API说明string转char数组将指定的元素追加到此集合的末尾删除指定索引处的元素,返回被删除的元素返回集合中元素的个数获取指定索引处的元素。原创 2022-10-13 14:01:14 · 1212 阅读 · 1 评论 -
单词分析--蓝桥杯
获取字符串中当前索引的字符,返回为char类型此题中需要熟悉ASCII表,并能够熟练的使用操作字符串的API首先要考虑到如何存放每个字母出现的次数,在这里用了数组,也还可以使用哈希表最后只需按照你所选择的方式遍历获取出现最多次数的字母即可。原创 2022-10-12 23:57:21 · 203 阅读 · 0 评论 -
二叉树的递归与非递归遍历
二叉树的遍历原创 2022-09-27 21:33:21 · 751 阅读 · 0 评论 -
1975. 最大方阵和
1975. 最大方阵和给你一个 的整数方阵 。你可以执行以下操作 任意次 :你的目的是 最大化 方阵元素的和。请你在执行以上操作之后,返回方阵的 最大和。减去最小值,才会使和最大。*2是因为sum绝对值总和,计算时已经加过一遍最小值时间和空间复杂度时间复杂度:O(1)空间复杂度:O(nn),n为矩阵长度Math.min()原创 2022-09-11 11:15:41 · 691 阅读 · 0 评论 -
643. 子数组最大平均数 I (滑动窗口)
滑动窗口是一种算法思想。在一个特定大小的字符串或数组上进行操作,而不在整个字符串和数组上操作,这样就降低了问题的复杂度,从而也达到降低了循环的嵌套深度。需要输出或比较的结果在原数据结构中是连续排列的(字符串中的连续不重复子串,数组中的连续元素最大和)每次窗口滑动时,只需观察窗口两端元素的变化,无论窗口多长,每次只操作两个头尾元素,当用到的窗口比较长时,可以显著减少操作次数。原创 2022-09-06 15:12:12 · 194 阅读 · 0 评论 -
641. 设计循环双端队列
循环双端队列原创 2022-08-17 22:01:06 · 321 阅读 · 0 评论 -
排序-希尔排序-java
将数据区分为成待定间隔的几个小区块,以插入排序法排完区块内的数据后在渐渐减少间隔的距离。交换法:package paixu;import java.util.Arrays;// 希尔排序public class shellSort { public static void main(String[] args) { int[] arr = {8,9,1,3,2,7,5,4,6,0}; // shell(arr); shel...原创 2022-03-17 00:20:52 · 828 阅读 · 0 评论 -
排序算法-插入排序-java
插入排序会造成大量数据搬移,建议在链表中使用代码1:int[] arr = {12,15,1,4,2}; for (int i = 0; i < arr.length; i++) { for (int j = i; j >0; j--) { if (arr[j]<arr[j-1]){ //交换 int temp ...原创 2022-03-02 22:35:20 · 292 阅读 · 0 评论 -
LeetCode算法--876.链表的中间结点(链表)
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } *...原创 2022-02-13 15:36:46 · 55 阅读 · 0 评论 -
leetCode算法--557.反转字符串中的单词Ⅲ
题目涉及知识点:1.获取字符串的长度: .length();3.按照字符串的索引获取值: .charAt();2.StringBuffer的常用API:添加: .append();代码:class Solution { public String reverseWords(String s) { StringBuffer st = new StringBuffer(); int k=0; for(int i=0;i<s...原创 2022-02-12 16:20:19 · 78 阅读 · 0 评论 -
LeetCode算法--283.移动零
一开始写的错误代码:class Solution { public void moveZeroes(int[] nums) { int left=0; int right=1; while(right<=nums.length-1){ if(nums[right]!=0){ exchange(nums,left,right); } left++; right..原创 2022-02-11 17:16:04 · 66 阅读 · 0 评论 -
算法-翻转数组--189.轮转数组
方法三:数组翻转该方法基于如下的事实:当我们将数组的元素向右移动 k次后,尾部k mod n 个元素会移动至数组头部,其余元素向后移动k mod n 个位置。该方法为数组的翻转:我们可以先将所有元素翻转,这样尾部的 k\bmod nkmodn 个元素就被移至数组头部,然后我们再翻转 [0, k mod n-1][0,k mod n−1] 区间的元素和 [k mod n, n-1][k mod n,n−1] 区间的元素即能得到最后的答案。我们以 n=7n=7,k=3k=3 为例进行如下展示:操.原创 2022-02-11 15:33:50 · 127 阅读 · 0 评论 -
LeetCode算法题--189.轮转数组
class Solution { public void rotate(int[] nums, int k) { int[] start=new int[nums.length]; for(int i=0;i<nums.length;i++){ int a=(i+k)%nums.length; start[a]=nums[i]; } System.arraycopy(start, 0, nums, 0, nums...原创 2022-02-10 21:26:10 · 86 阅读 · 0 评论 -
leetcode算法题解笔记--977. 有序数组的平方
写题复盘:一开始看到题目后首先看到了数字的平方就想到用Math.sqrt(),但是当提交后显示double->int会造成失真,就换用*法。先平方后再排序,选用的是快速排序(最坏情况为O(n^2),一般应该为O(nlogn)。官方给的排序方法直接是Arrays.sort(),果然我还是太菜了????class Solution { public int[] sortedSquares(int[] nums) { int[] sk=new int[100];原创 2022-02-09 21:41:44 · 92 阅读 · 0 评论