算法
Missy Peng
小猫在午睡,地球在转圈。
展开
-
力扣打卡:有效的字母异同位
题目描述给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false说明:你可以假设字符串只包含小写字母。解题思路方法一:集合存储(不推荐)自己写的菜菜的方法,因为有较多集合移除操作,所以执行时间较慢首先判断两个字符串长度是否相等,不相等则直接返回 false若不相等,先遍历存储s里的字符原创 2020-11-22 11:05:37 · 136 阅读 · 0 评论 -
力扣 反转链表II
反转从位置 m 到 n 的链表。请使用一趟扫描完成反转。说明:1 ≤ m ≤ n ≤ 链表长度。示例:输入: 1->2->3->4->5->NULL, m = 2, n = 4输出: 1->4->3->2->5->NULL解答/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode nex原创 2020-11-15 14:24:27 · 160 阅读 · 0 评论 -
蓝桥杯常用知识点总结
字符串 //字符串转为char String str = "abc"; char[] strArr = str.toCharArray(); //char转换为字符串 str = String.valueOf(strArr); //将char类型转换为int类型 int c = str.charAt(0) - '0'; //字符串截取方法,str.substring(a,b),截取从位置a到位置b的字符串,左闭右开[a,b) String substring原创 2020-10-16 22:33:32 · 1910 阅读 · 0 评论 -
leetcode:特定深度节点链表(层次遍历)
题目描述给定一棵二叉树,设计一个算法,创建含有某一深度上所有节点的链表(比如,若一棵树的深度为 D,则会创建出 D 个链表)。返回一个包含所有深度的链表的数组。代码实现/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } *原创 2020-10-10 22:35:41 · 240 阅读 · 0 评论 -
判断一个整数是否为素数
题目描述:判断一个整数n是否为素数?算法思路:首先我们需要明白素数是什么?需要满足什么条件?素数又称质数,所谓素数是指除了 1 和它本身以外,不能被任何整数整除的数。例如17就是素数,因为它不能被 2~16 的任一整数整除。思路1:判断一个整数m是否是素数,只需把 n 被 2 ~ n-1 之间的每一个整数去除,如果都不能被整除,那么 n 就是一个素数。思路2:对判断方法进行...原创 2020-04-24 18:49:36 · 5440 阅读 · 0 评论 -
矩阵乘法
问题描述算法实现/*** 矩阵乘法* @param A,为n × m矩阵* @param B,为m × p矩阵* @return 结果为n × p矩阵*/public static long[][] multiply(long[][] A, long[][] B) { final int n = A.length;//A的行数 final int m = A[0].l...原创 2020-04-17 15:11:22 · 205 阅读 · 0 评论 -
多维数组与矩阵之子矩阵的最大累加和
问题描述给定一个矩阵matrix,其中的值有正、有负、有0,返回子矩阵的最大累加和。例如,matrix为:其中最大累加和的子矩阵为:2 2所以返回4。算法思路对矩阵按列求和存到数组里,然后再求此数组的子数组的最大累加和,即为矩阵的最大累加和。以从第一行为例画图解释:第一行计算后,最大的累加和为2同理可对第二行…第n行进行计算,最后得到子矩阵的最大累加和。代码public...原创 2020-04-10 18:59:06 · 257 阅读 · 0 评论 -
多维数组与矩阵之子数组的最大累加和
问题描述给定一个数组arr,返回子数组的最大累加和例: arr = [1,-2,3,5,-2,6,-1];所有子数组中[3,5,-2,6]可以累加出最大的和为12,所以返回12。算法思路注:首先解释一下什么是子数组?即一段连续的数组的切片解法一:暴力破解O(n^2)双重for循环,计算每个子数组的累加和,记录其中最大的累加和。public class _05_子数组的最大的和 { ...原创 2020-04-10 16:41:03 · 235 阅读 · 0 评论 -
多维数组与矩阵之之字形打印矩阵
问题描述给定一个矩阵matrix, 按照“之” 字形的方式打印这个矩阵例如:给定一个矩阵:则依次打印出的数字为:1 2 5 9 6 3 4 7 10 13 14 11 8 12 15 16算法思路先贴出一张4 X 4的矩阵之子打印的流程图,会比较方便理解算法代码public class _03_之字形打印 { public static void main(String[...原创 2020-04-08 23:00:39 · 233 阅读 · 0 评论 -
多维数组与矩阵之0所在的行列清零
问题描述如果矩阵中的某个元素为0,则将其所在行和列清零例如:输出:算法思路这是一道考察数组下标的算法,有个小坑是:如果采用遇到一个零处理一个的方式,即在原数组上遇到一个零就把其对应的行和列元素变为零,则会把整个数组都变为0。因为这是一个循环的过程,本来原数组中不为0的元素被消为0,产生错误,在数组中有0的情况下,整个数组都会被消为0。所以采用新的数组来记录原数组中0元素的下标,用...原创 2020-04-08 21:03:38 · 467 阅读 · 0 评论 -
多维数组和矩阵之顺时针打印二维数组
题目描述:输入一个矩阵,按照从外向里以顺时针打印出每一个数字,例如:输入如下矩阵,则依次打印出的数字为:1、2、3、4、8、12、16、15、14、13、9、5、6、7、11、10算法思路打印顺序如图所示:顺时针打印,从外到里,不失普遍性针对所有循环圈都是:第一步: 先打印上面一条边,再打印右边一条边,再打印下面一条边,最后打印左边一条边。打印一圈以后,左上角的指针像右下角移动,...原创 2020-04-08 17:12:43 · 334 阅读 · 0 评论