自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 哈希笔记(七)***

题目:(15)三数之和版本一,自己想用哈希结构去实现,未能实现class Solution {public: vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> result_array; unordered_map<int,int> result_map; int su

2022-03-01 23:31:30 68

原创 哈希笔记(六)map/数组

(383)赎金信解法一:利用map实现,完全是自己写的class Solution {public: bool canConstruct(string ransomNote, string magazine) { unordered_map<char, int> result_map; for (int i=0; i < ransomNote.length(); i++){ result_map[ransomNot

2022-03-01 20:48:18 109

原创 哈希表笔记(五)map

题目:(454)四数相加class Solution {public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vector<int>& nums4) { unordered_map<int,int> result_map; int count = 0;

2022-03-01 20:08:44 75

原创 哈希表笔记(四)map

题目(1)两数之和解法一:暴力法class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { int i,j=0; int nums_size = nums.size(); for(i=0;i<nums_size;i++) { for(j=i+1;

2022-03-01 17:20:08 140

原创 哈希表笔记(三)哈希集合实现快速查找

题目;(202)快乐数解法一:哈希集合快速搜索题目给的无限循环的意思就是sum的值会出现重复,形成环形结构。知识点:(1)数位分离,求平方和 (2)利用哈希集合完成数字是否已经出现在哈希集合中。 如果她不在哈希集合里边,我们应该添加它; 如果在哈希集合中,这意味着我们处在一个循环中,因此返回falseclass Solution {public: ...

2022-03-01 15:36:56 225

原创 哈希表笔记(二)unordered_set

题目(349)两个数组的交集解法一:暴力算法,排序+双指针class Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> nums3; sort(nums1.begin(), nums1.end()); sort(nums2.begi

2022-03-01 11:37:12 309

原创 哈希表笔记(一)数组实现

数组就是简单的哈希表,但是数组的大小是受限的!需要把字符映射到数组上,也就是对应的哈希索引上。题目:(242)有效的字母异位词class Solution {public: bool isAnagram(string s, string t) { int record[26]={0}; //注意初始化数组 for (int i=0; i < s.size(); i++) //哈希思想 r

2022-03-01 11:12:23 149

原创 链表(三)循环链表

题目:(142)循环链表class Solution {public: ListNode *detectCycle(ListNode *head) { ListNode * fast = head; ListNode * last = head; ListNode * tmp; while(fast != nullptr && fast->next != nullptr){ //注意fast->

2022-02-28 22:41:00 41

原创 链表笔记(二)反转链表

题目:(206)反转链表方法一:双指针法自己版本:class Solution {public: ListNode* reverseList(ListNode* head) { ListNode * cur = head->next; //有问题,具体看标准版本,只能初始化为cur = head; ListNode * left = head; ListNode * right = left->next-&

2022-02-28 21:48:51 80

原创 链表笔记(一)

题目:(707)设计链表自己版本:自己的版本一直报错,未能解决class MyLinkedList {public: //定义链表结构体 struct ListNode{ int val; ListNode* next; ListNode(int val) : val(val),next(nullptr){} //节点构造函数,注意写法 }; //初始化链表 MyLinkedList() {

2022-02-28 20:25:43 91

原创 数组笔记(四)模拟行为

考察点:本题并不涉及到什么算法,就是模拟过程,但却十分考察对代码的掌控能力。题目:(59)螺旋矩阵class Solution {public: vector<vector<int>> generateMatrix(int n) { //int matrix[n][n]; //vector<vector<int>> matrix<n,vector<n,0>>; //

2022-02-27 22:56:00 167

原创 数组笔记(三)滑动窗口

滑动窗口法:所谓滑动窗口,就是不断的调节子序列的起始位置和终止位置。题目:209.长度最小的子数组解法一:暴力解法自己版本class Solution {public: int minSubArrayLen(int target, vector<int>& nums) { int num = nums.size(); int min_Length = 0; //后边比较min_Length和temp的值,

2022-02-27 21:34:24 82

原创 数组笔记(二)二分法

经验:有序数组是二分查找的基础,重要看到面试题给出的数组是有序数组,都可以想一想是否可以使用二分查找法。 同时当数组中有重复元素,使用二分查找法返回的元素可能不是唯一的。题目(35)搜索插入位置解法一:暴力解法classSolution{public:intsearchInsert(vector<int>&nums,inttarget){for(inti=0;i<nums.size()...

2022-02-27 17:07:43 62

原创 数组篇笔记(一)双指针的用法

一.双指针1.用法双指针法(快慢指针法):通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。2.优势:双指针法将时间复杂度O(n^2)的解法优化为 O(n)的解法。题目:(15)三数之和(18)四数之和(27)移除元素解法一:暴力解法//时间复杂度:O(n^2)//空间复杂度:O(1)classSolution{public:intremoveElement(vector<int>&...

2022-02-26 23:14:12 305

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除