数据结构算法
聚精会神搞学习
这个作者很懒,什么都没留下…
展开
-
Python字典(还在更新)
字典 字典的应⽤用场景 创建字典的语法 字典常⻅见操作 字典的循环遍历 一. 字典的应⽤用场景 思考1: 如果有多个数据,例例如:‘Tom’, ‘男’, 20,如何快速存储? 答:列列表 思考2:如何查找到数据’Tom’? 答:查找到下标为0的数据即可。 思考3:如果将来数据顺序发⽣生变化,如下所示,还能⽤用 list1[0] 访问到数据’Tom’吗?。 答:不不能,数据’Tom’此时下标为2。 思考4:数据顺序发⽣生变化,每个数据的下标也会随之变化,如何保证数据顺序变化前后能使⽤用同⼀一的标准查找数据呢?原创 2022-03-08 14:49:11 · 191 阅读 · 0 评论 -
Leetcode350. 两个数组的交集 II
两个数组的交集 II 题意:给你两个整数数组 nums1 和 nums2 ,请你以数组形式返回两数组的交集。返回结果中每个元素出现的次数,应与元素在两个数组中都出现的次数一致(如果出现次数不一致,则考虑取较小值)。可以不考虑输出结果的顺序。 输入:nums1 = [1,2,2,1], nums2 = [2,2] 输出:[2,2] 示例 2: 输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4] 输出:[4,9] 使用哈希表: class Solution { public:原创 2022-03-12 10:11:40 · 159 阅读 · 0 评论 -
Leetcode88. 合并两个有序数组
第一种: 直接将两个数组合并,然后排序就行了 class Solution { public: void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) { for (int i = 0; i != n; ++i) { nums1[m + i] = nums2[i]; } sort(nums1.begin(), num原创 2022-03-10 14:36:17 · 223 阅读 · 0 评论 -
Leetcode1. 两数之和
暴力解: 两层循环。第一层循环为左指针,第二层为右指针,如果遇到两个指针所指的数之和等于target则将下标i, j 返回 class Solution { public: vector<int> twoSum(vector<int>& nums, int target) { for(int i = 0; i < nums.size(); i++){ for(int j = i+1; j < nums.size(原创 2022-03-10 09:23:17 · 159 阅读 · 0 评论 -
Leetcode53. 最大子数组和
贪心算法 https://leetcode-cn.com/problems/maximum-subarray/solution/zui-da-zi-xu-he-cshi-xian-si-chong-jie-fa-bao-li-f/ 思想: 若当前所指元素之前的和小于0,则丢弃当前元素之前的数列 class Solution { public: int maxSubArray(vector<int> &nums) { //类似寻找最大最小值的题目,初始值原创 2022-03-10 15:19:07 · 273 阅读 · 0 评论 -
Leetcode217. 存在重复元素
第一种解决办法: 先对nums排序,相等的值下标一定是相邻的,故只需判断相邻下标的值是否相等即可 class Solution { public: bool containsDuplicate(vector<int>& nums) { //nums长度 int length = nums.size(); //对nums进行排序 sort(nums.begin(),nums.end()); //遍历nums,相等的原创 2022-03-09 15:40:29 · 185 阅读 · 0 评论