![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 86
zpeien
改变自己不能接受的,接受自己不能改变的!!
展开
-
每日十道算法
1、组合给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。class Solution { List<List<Integer>> result = new ArrayList<>(); LinkedList<Integer> path = new LinkedList<>(); public List<List<Integer&g.原创 2022-03-28 10:00:00 · 138 阅读 · 0 评论 -
每日十道算法
1、零钱兑换给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑成总金额所需的 最少的硬币个数 。如果没有任何一种硬币组合能组成总金额,返回 -1 。你可以认为每种硬币的数量是无限的。class Solution { public int coinChange(int[] coins, int amount) { int max = Integer.MAX_VALUE; int..原创 2022-03-27 10:00:00 · 414 阅读 · 0 评论 -
每日十道算法
1、岛屿的最大面积给你一个大小为 m x n 的二进制矩阵 grid 。岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直的四个方向上 相邻。你可以假设 grid 的四个边缘都被 0(代表水)包围着。岛屿的面积是岛上值为 1 的单元格的数目。计算并返回 grid 中最大的岛屿面积。如果没有岛屿,则返回面积为 0 。时间复杂度:$O(m*n)空间复杂度:$O(1)class Solution { int sum =..原创 2022-03-26 10:00:00 · 287 阅读 · 0 评论 -
每日十道算法
1、二叉树的最近公共祖先给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode lef...原创 2022-03-25 10:00:00 · 71 阅读 · 0 评论 -
每日十道算法
1、完全二叉树的节点个数给你一棵 完全二叉树 的根节点 root ,求出该树的节点个数。完全二叉树 的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的若干位置。若最底层为第 h 层,则该层包含 1~ 2h 个节点。/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeN..原创 2022-03-24 10:00:00 · 374 阅读 · 0 评论 -
每日十道算法
1、二叉树的层平均值给定一个非空二叉树, 返回一个由每层节点平均值组成的数组。import java.util.*;/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode() {} * TreeNode(int val) { this.val .原创 2022-03-23 10:00:00 · 104 阅读 · 0 评论 -
每日十道算法
1、二叉搜索树的第k大节点给定一棵二叉搜索树,请找出其中第 k 大的节点的值。import java.util.*;/** * Definition for a binary tree node. * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */class Soluti.原创 2022-03-22 10:00:00 · 72 阅读 · 0 评论 -
每日十道算法
1、最长公共前缀编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 ""。class Solution { public String longestCommonPrefix(String[] strs) { if(strs.length == 0){ return ""; } String res = strs[0]; for(int i.原创 2022-03-21 10:00:00 · 160 阅读 · 0 评论 -
每日十道算法
1、整数转换整数转换。编写一个函数,确定需要改变几个位才能将整数A转成整数B。class Solution { public int convertInteger(int A, int B) { //A与B进行异或运算,得到的结果1就是不相同,0就是相同 //0011^1100 = 1111 结果有几个1,那么就有几个位要改变 int n = A ^ B; int res = 0; whil.原创 2022-03-20 10:00:00 · 148 阅读 · 0 评论 -
每日十道算法
1、有效的字母异位词给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词时间复杂度:$O(n)空间复杂度:$O(n)import java.util.*;class Solution { public boolean isAnagram(String s, String t) { int[] res = new int[26]; ..原创 2022-03-19 10:00:00 · 117 阅读 · 0 评论 -
每日十道算法
1、两个数组的交集给定两个数组,编写一个函数来计算它们的交集。时间复杂度:$O(n)空间复杂度:$O(n)import java.util.*;class Solution { public int[] intersection(int[] nums1, int[] nums2) { if(nums1.length == 0 || nums2.length == 0 || nums1 == null || nums2 == null){ .原创 2022-03-18 18:00:00 · 674 阅读 · 0 评论 -
每日十道算法
1、两两交换链表中的节点给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。时间复杂度:$O(n)空间复杂度:$O(1)/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ...原创 2022-03-17 15:20:49 · 990 阅读 · 0 评论 -
每日十道算法
1、链表中倒数第k个节点输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题从1开始计数,即链表的尾节点是倒数第1个节点/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */class Solution { publ.原创 2022-03-16 18:00:00 · 917 阅读 · 0 评论 -
每日算法十道
1、数组中重复的数字找出数组中重复的数字。在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。import java.util.*;class Solution { public int findRepeatNumber(int[] nums) { Set s = new HashSet(); for(i.原创 2022-03-15 08:51:42 · 951 阅读 · 0 评论 -
每日十道算法
1、爬楼梯假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。时间复杂度:$O(n)空间复杂度:$O(n)class Solution { public int climbStairs(int n) { if(n <= 2){ return n; } // 爬过n阶的方法 ..原创 2022-03-14 07:54:56 · 178 阅读 · 0 评论 -
排序----十大排序算法介绍
排序的基本概念排序的稳定性假设Ki = Kj(1<= i <= n, 1<=j<=n, i != j ),且在排序前的序列中Ri 领先于 Rj (即 i < j)若在排序后的序列中 Ri 仍然领先于 Rj ,则称所用的排序方法是稳定的若可能使排序后的序列中 Rj 领先于 Ri, 则称所用排序方法使不稳定的。内部排序:指的是待排序记录全部存放在计算机内存中进行排序的过程。外部排序:指的是待排序记录的数量很大,以致内存一次不能容纳全部记录,在排序过程中原创 2022-03-09 12:02:17 · 559 阅读 · 0 评论