![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构
Java天下第1
Java后端工程师。
展开
-
LeetCode——2. 两数相加(给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储)
题目要求给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0 开头。每个链表中的节点数在范围 [1, 100] 内0 <= Node.val <= 9题目数据保证列表表示的数字不含前导零一、我自己的解法(暴力解)/** * Definition for singly-linked原创 2021-06-01 20:14:08 · 745 阅读 · 0 评论 -
LeetCode——1. 两数之和(给定一个整数数组 nums 和一个整数目标值 target)
给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。public class A_Solution { public static void main(String[] args) { int[] array = new int[]{2,7,11,15}; ..原创 2021-06-01 19:46:02 · 429 阅读 · 0 评论 -
左神算法——算法基础入门班第一课——认识时间复杂度、选择排序、冒泡排序、插入排序、二分法、异或运算的性质与扩展、对数器的概念和使用、剖析递归行为和递归行为时间复杂度的估算
文章目录一、认识时间复杂度二、选择排序三、冒泡排序四、插入排序五、二分法六、异或运算的性质与扩展七、对数器的概念和使用八、剖析递归行为和递归行为时间复杂度的估算一、认识时间复杂度常数时间的操作:一个操作如果和样本的数据量没有关系,每次都是固定时间内完成的操作,叫做常数操作。时间复杂度为一个算法流程中,常数操作数量的一个指标。常用O(读作big O)来表示。具体来说,先要对一个算法流程非常熟悉,然后去写出这个算法流程中,发生了多少常数操作, 进而总结出常数操作数量的表达式。 在表达式中,只要高原创 2021-03-19 18:09:05 · 384 阅读 · 0 评论 -
插入排序(Insertion sort)是一种简单直观且稳定的排序算法。
排序原理:1.把所有的元素分为两组,已经排序的和未排序的;2.找到未排序的组中的第一个元素,向已经排序的组中进行插入;3.倒叙遍历已经排序的元素,依次和待插入的元素进行比较,直到找到一个元素小于等于待插入元素,那么就把待插入元素放到这个位置,其他的元素向后移动一位;插入排序代码实现:插入排序的时间复杂度分析插入排序使用了双层for循环,其中内层循环的循环体是真正完成排序的代码,所以,我们分析插入排序的时间复杂度,主要分析一下内层循环体的执行次数即可。最坏情况,也就是待排序的数组元素原创 2020-09-22 20:22:31 · 933 阅读 · 0 评论 -
Java冒泡排序 算法
思路:先比较第一个和第二个元素 4比5小 不需要交换位置;再比较第二个和第三个元素 5比6小 不需要交换位置;再比较第三个和第四个元素 6比3大 需要交换位置;4 5 3 6 2 1再比较第四个和第五个元素 6比2大 需要交换位置;4 5 3 2 6 1再比较第五个和第六个元素 6比1大 需要交换位置;4 5 3 2 1 6先比较第一个和第二个元素 4比5小 不需要交换位置;再比较第二个和第三个元素 5比3小 不需要交换位置;4 3 5 2 1 6再比较第三个和第四个元素 5比2大 需要交.原创 2020-09-22 18:57:45 · 159 阅读 · 0 评论 -
数据结构
二分法public class Singleton { int[] array=new int[]{1,12,3,24,354,34,62,3,42,0,32,123}; int low=0; int pow=array.length-1; int middle=0; public int binarySearch(int value){ ...原创 2020-05-05 15:57:45 · 129 阅读 · 0 评论