LeetCode初级算法之数组:350.两个数组的交集 II
两个数组的交集 II题目地址:https://leetcode-cn.com/problems/intersection-of-two-arrays-ii/
给定两个数组,编写一个函数来计算它们的交集。
示例 1:
12输入:nums1 = [1,2,2,1], nums2 = [2,2]输出:[2,2]
示例 2:
12输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]输出:[4,9]
说明:
输出结果中每个元素出现的次数,应与元素在两个数组中出现次数的最小值一致。
我们可以不考虑输出结果的顺序。
进阶:
如果给定的数组已经排好序呢?你将如何优化你的算法?
如果 nums1 的大小比 nums2 小很多,哪种方法更优?
如果 nums2 的元素存储在磁盘上,内存是有限的,并且你不能一次加载所有的元素到内存中,你该怎么办?
题目信息输入:两个整数数组
输出:交集数组
额外:不考虑顺序
思考就相当于是数学集合求交集,很容易想到的就是双指针扫描比较判断是否存入结果。对于这样的方式就选择先排序再比较。
12345678nums1 = [4,5,9], ...
一万次悲伤
《一万次悲伤》谱子收藏、全文查看
您的浏览器不支持视频标签
春风十里
《春风十里》谱子收藏、全文查看
您的浏览器不支持视频标签
LeetCode初级算法之数组:136.只出现一次的元素
只出现一次的元素题目地址:https://leetcode-cn.com/problems/single-number/
给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。
说明:
你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?
示例 1:
12输入: [2,2,1]输出: 1
示例 2:
12输入: [4,1,2,1,2]输出: 4
题目信息输入:整数数组(只有一个数单个,其他数全部是两次的数组)
输出:整数(那个单个的数)
额外:时间复杂度O(n),空间复杂度O(1)
思考一开始看漏了信息以为只有数组里只有一个不重复其他都是重复不限次数,忽略了重复只有2次。所以想到的只有万能的map计数,无论是找出现次数最多的还是出现一次的啥都可以。但并不满足空间复杂度,为了满足空间复杂度不使用额外记录那就是暴力扫描n^2,说到扫描就还对应一个更优的方式就是排序后再扫描nlogn但这两种也都不满足线性的时间复杂度。(记得上一篇判断数组是否有重复也有这几种思路使用容器或者双指针扫描)
123456789101112131 ...
面试四
OSI参考模型
tcp/ip模型
操作系统死锁
LeetCode初级算法之数组:217.存在重复元素
存在重复元素题目地址:https://leetcode-cn.com/problems/contains-duplicate/
给定一个整数数组,判断是否存在重复元素。如果任意一值在数组中出现至少两次,函数返回 true 。如果数组中每个元素都不相同,则返回 false。
示例 1:
12输入: [1,2,3,1]输出: true
示例 2:
12输入: [1,2,3,4]输出: false
示例 3:
12输入: [1,1,1,3,3,4,3,2,4,2]输出: true
题目信息输入: 整数数组
输出: 布尔(数组是否有重复元素)
思考这一题比前几题都要简单,第一想法就用set存值会有成功与否判断来简单解决,不用工具类的话还有暴力比较那就是双指针比较采用嵌套循环,还有一种就是排好序再比较重复就是挨个了使用当前位置比较上一个只需要一次遍历。
代码总结12345678910//方法一public boolean containsDuplicate(int[] nums) { Set set = new HashSet(); for(int i = 0; ...
Linux安装最新Mysql
前言
之前自个需要在deepin下安装mysql,网上大家都是用软件源安装
sudo apt-get install -y mysql-server mysql-client
是安装的是mariaDB,关于MySQL与mariaDB,mariaDB是MySQL5.7源代码的一个分支,由于Oracle公司买下了Sun,在意识到Oracle可能会将MySQL闭源,于是先分离出了MySQL的衍生版MariaDB。虽然大部分兼容MySQL但是还是在我的项目出现问题,因此还是去装之前项目使用的MySQL8。
下载进入官网下载
点击跳转
这里我选择的通用包不同版本的都可以用下面方式安装,也可以对应自己linux系统进行选择。当然这里在deepin下安装也可以选择debian9的版本直接安装deb包
或者直接下debian的,如果是红帽系列就是rpm
下面只介绍使用通用压缩包的安装方式
安装mysql
解压并移动到/usr/local
1sudo tar -xvJf mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz -C /usr/l ...
LeetCode初级算法之数组:189.旋转数组
旋转数组题目地址:https://leetcode-cn.com/problems/rotate-array/
给定一个数组,将数组中的元素向右移动 k 个位置,其中 k 是非负数。
示例 1:
123456输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]
示例 2:
12345输入: [-1,-100,3,99] 和 k = 2输出: [3,99,-1,-100]解释: 向右旋转 1 步: [99,-1,-100,3]向右旋转 2 步: [3,99,-1,-100]
说明:
尽可能想出更多的解决方案,至少有三种不同的方法可以解决这个问题。
要求使用空间复杂度为 O(1) 的 原地 算法。
题目信息输入:数组nums、整数k
输出:修改数组(nums向右移动k位)
额外条件:空间复杂度O(1)
思考首先想到的就是直接设置最终值,原地修改数据会丢失所以添加备份变量backup。备份 ...