
数据结构与算法
数据结构与算法
爱听歌的Fengx
Java Python攻城狮
展开
-
136、只出现一次的数字
标签:位运算、哈希表题目给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。你可以不使用额外空间来实现吗?示例1:输入: [2,2,1]输出: 1示例2:输入: [4,1,2,1,2]输出: 4解法方法一:位运算class Solution { public int singleNumber(int[] nums) { int single = 0;原创 2021-05-30 16:15:51 · 58 阅读 · 0 评论 -
1、两数之和
题目给定一个整数数组nums和一个整数目标值 target,请你在该数组中找出和为目标值 的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例:输入:nums = [2,7,11,15], target = 9输出:[0,1]解释:因为 nums[0] + nums[1] == 9,返回 [0, 1]。代码package leetcode;import java.util.Arrays;im原创 2021-03-24 23:21:53 · 151 阅读 · 0 评论 -
2、两数相加
代码有详细注释和理解标签:递归、链表、数学题目给你两个非空的链表,表示两个非负的整数。它们每位数字都是按照逆序的方式存储的,并且每个节点只能存储一位数字。请你将两个数相加,并以相同形式返回一个表示和的链表。你可以假设除了数字 0 之外,这两个数都不会以 0开头。示例输入:l1 = [2,4,3], l2 = [5,6,4]输出:[7,0,8]解释:342 + 465 = 807.代码package leetcode;/** * 2、两数相加 * 标签:递归、链表、数学 *原创 2021-03-26 10:28:47 · 165 阅读 · 0 评论 -
链表----面试题02.03.删除中间节点
题目实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。示例输入:单向链表a->b->c->d->e->f中的节点c结果:不返回任何数据,但该链表变为a->b->d->e->f题解看了下大佬的解题思路,属实牛逼!由于只能访问这个被删除的节点,那么就让下个节点变成这个被删除的节点。(杀不掉我,我就变成你,然后再干掉你,就等于杀死了自己)代码class Solution { public v原创 2021-03-14 23:48:45 · 143 阅读 · 0 评论 -
数组----1480.一维数组的动态和
题目给你一个数组nums。数组「动态和」的计算公式为:runningSum[i] = sum(nums[0]…nums[i])。请返回 nums 的动态和。示例输入:nums = [1,2,3,4]输出:[1,3,6,10]解释:动态和计算过程为 [1, 1+2, 1+2+3, 1+2+3+4] 。代码class Solution { public int[] runningSum(int[] nums) { // 根据数组长度循环 for(int原创 2021-03-07 21:32:51 · 343 阅读 · 0 评论 -
数据结构基础知识
概述数据结构是为实现对计算机数据有效使用的各种数据组织形式,服务于各类计算机操作。不同的数据结构具有各自对应的适用场景,旨在降低各种算法计算的时间与空间复杂度,达到最佳的任务执行效率。分类线性数据结构(物理结构)数组(Array)、链表(Linked List)、栈(Stack)、队列(Queue)非线性数据结构(逻辑结构)树(Tree)、堆(Heap)、散列表(Hashing)、图(Graph)数组数组是将相同类型的元素存储于连续内存空间的数据结构,其长度不可变。如下图所示,构建此数组原创 2021-05-30 16:11:49 · 639 阅读 · 0 评论 -
计算机基础--数据结构基础知识整理
原创 2020-08-02 11:19:10 · 179 阅读 · 0 评论 -
算法基础知识整理
原创 2020-08-02 11:30:44 · 193 阅读 · 0 评论