算法竞赛

AcWing算法基础课-787归并排序-Java题解

归并排序是一种有效的排序算法,属于分治法(Divide and Conquer)的一种,它的基本思想是将一个大数组分解成两个小数组,在对这两个小数组分别进行排序后,再将这两个已排序的小数组合并成一个完整的有序数组。归并排序的时间复杂度为O(n log n),在最坏的情况下依然能够保持这个性能,是一种

AcWing算法基础课-790数的三次方根-Java题解

在阿里巴巴的 AcWing 平台上,有一道经典的题目:求一个数的三次方根。这个问题不仅可以巩固我们对数的理解,还可以帮助我们熟悉 Java 编程语言中的一些基本概念和实现方法。本文将对此问题进行详细解析,并给出相应的 Java 代码示例。问题描述给定一个数字 (x),我们需要求出其三次方根,即找

AcWing算法基础课-786第k个数-Java题解

在AcWing的第786题“第k个数”中,我们需要从一个给定的范围内,找到第k个数。这道题旨在考察算法的思维和实现能力,通常可以通过排序、查找或动态规划等方法解决。下面,我将详细讲解这道题的解法,并提供Java代码示例。题目描述给定两个整数n和k,要求在1到n的所有非负整数中,找到第k个数。为了

AcWing算法基础课-789数的范围-Java题解

在竞争编程的世界中,数字范围问题是一个常见的考察题目。今天,我们以“AcWing算法基础课-789数的范围”这一题为例,来探讨如何使用Java来解决这个问题。问题描述在这个问题中,我们需要查找所有在给定范围内的789数。什么是789数呢?简单来说,789数是指一个整数中包含数字7、8和9的数字。

AcWing算法基础课-788逆序对的数量-Java题解

在处理排序相关的问题时,逆序对的数量是一个常见而重要的概念。在AcWing的算法基础课程中,题目“788逆序对的数量”要求我们计算给定数组中的逆序对数量。逆序对是指对 (i, j) 满足 i < j 且 arr[i] > arr[j] 的数组元素对。接下来,我们将讨论如何有效地计算逆序对

AcWing算法基础课-785快速排序-Java题解

快速排序是一种常见的排序算法,其平均时间复杂度为 (O(n \log n)),最坏情况下为 (O(n^2))。快速排序的基本思想是通过一个“基准”元素将待排序的数组分成两个部分,使得左侧部分的元素都不大于基准元素,而右侧部分的元素都不小于基准元素。接着,递归地对这两部分继续进行排序。以下是用Jav