
算法设计
ThinkPet
青年码农一枚
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【编程题】给定一个数组找出其中大于0的数字中倒数第二小的数字的下标
【代码】【编程题】给定一个int型数组找出其中大于0的数字中倒数第二小的数字的下标。原创 2024-06-14 14:24:22 · 270 阅读 · 0 评论 -
算法题-求字符串数组中的最长公共前缀
1.编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串""。示例:输入[“flower”,“flow”,“flight”]输出"fl"在Java中,你可以通过水平扫描(Horizontal Scanning)或者垂直扫描(Vertical Scanning)的方式来解决这个问题。水平扫描是从左到右检查每个字符是否相同,而垂直扫描是首先获取所有字符串的最小长度,然后从第一个字符串开始,逐个字符地与其他字符串进行比较。原创 2024-05-05 19:51:58 · 483 阅读 · 0 评论 -
java算法题42502
然后,它使用两个指针i和j分别指向字符串a和b的末尾,并初始化进位carry为0。在循环中,它计算当前位的和(包括进位),然后将和的个位数添加到结果字符串中,并更新进位值。最后,它返回反转后的结果字符串,因为我们是从最低位开始构建的。Java中的BigInteger类提供了大整数的运算功能,包括加法。我们可以先将二进制字符串转换为BigInteger对象,然后进行加法运算,最后再将结果转换回二进制字符串。从字符串的末尾(最低位)开始,逐位相加,并处理进位。原创 2024-04-25 14:08:43 · 232 阅读 · 0 评论 -
java算法题42501
使用HashSet或HashMap的解法时间复杂度都是O(n),其中n是数组的长度。这是因为这两种数据结构都提供了常数时间复杂度的插入和查找操作。检查元素是否已经在HashSet或HashMap中(O(1)时间复杂度)。如果不在,将其添加到HashSet或作为键添加到HashMap中(O(1)时间复杂度,在平均情况下)。因此,整体的时间复杂度是O(n),因为你只遍历了数组一次,并且对于数组中的每个元素都执行了常数时间的操作。在Java中,无论是使用HashSet还是HashMap。原创 2024-04-25 13:55:20 · 345 阅读 · 1 评论 -
算法的时间复杂度
O(n):线性时间复杂度,表示算法的运行时间与输入规模呈正比关系,即随着输入规模的增加,时间消耗也会呈线性增长。O(log n):对数时间复杂度,表示算法的运行时间随输入规模增长而增长,但增长率远远慢于线性增长。O(1):常数时间复杂度,表示无论输入规模大小是多少,算法都需要相同的时间完成。例如读取数组中某个元素。O(n^2):平方时间复杂度,表示算法的运行时间与输入规模的平方成正比,通常出现在嵌套循环的情况下。O(2^n) :指数时间复杂度,指定量级的问题规模越大,时间的增长率指数级别上升,非常低效。原创 2023-05-21 10:27:41 · 335 阅读 · 0 评论 -
Java选择排序
/** * 选择排序 * 每次排序都把最大的数与 待排列的最后一个数交换位置 * 32 43 23 13 5 * 32 5 23 13 ,43 * 13 5 23 ,32 43 * 13 5 ,23 32 43 (23就是余下中最大的,不用换位置) * 5 ,13 23 32 43 * 最后得到排序结果 5<13<...原创 2018-11-20 10:36:58 · 371 阅读 · 0 评论 -
Java 快速排序
快速排序选择第一个数为p,小于p的数放在左边,大于p的数放在右边。递归的将p左边和右边的数都按照第一步进行,直到不能递归 public class QuickSort { // 快速排序 // 要求时间最快时 // 选择第一个数为key,小于key的数放在左边,大于key的数放在右边 // 递归的将key左边和右边的数都按照第一步进行,直到不能递归 //快速排...原创 2018-11-20 09:15:47 · 522 阅读 · 0 评论 -
java 冒泡排序
package sort;public class BubbleSort { public static void main(String[] args) { // 创建一个乱序数组 int[] array = { 63, 4, 24, 1, 3, 15 }; BubbleSort sorter = new BubbleSort(); System.out.println...原创 2018-10-28 16:43:02 · 229 阅读 · 0 评论 -
Java 自定义链表并求中间节点
先定义一个节点类Nodepackage helper;//定义一个表示节点的类Nodepublic class Node { Node next; //下一个节点的引用 Object obj; //节点元素 public Node(Object obj) { this.obj = obj; }}再定义链表类LinkedListpackage hel...原创 2018-11-20 16:04:13 · 388 阅读 · 0 评论 -
Java 反转排序
/** * 反转排序 * 对数组两边的元素进行替换,只需要循环数组长度的半数次。 * @author Administrator * */public class ReverseSort { public static void main(String[] args) { int[] t = { 12, 20, 5, 16, 15, 1, 30, 45, 23, 9 };...原创 2018-11-20 15:24:18 · 491 阅读 · 0 评论