Leetcode
霍洛维茨
这个作者很懒,什么都没留下…
展开
-
leetcode: 383. Ransom Note
leetcode: 383. Ransom Note原题链接class Solution {public: bool canConstruct(string ransomNote, string magazine) { int mp[26] = {0}; for (char x : magazine) mp[x - 'a']++; for (char x : ransomNote) { if (m原创 2021-12-25 19:18:01 · 199 阅读 · 0 评论 -
leetcode: 454. 4Sum II
leetcode: 454. 4Sum II原题链接这道题目很自然的一个思路就是运用4重for循环,暴力判断,结果超时。思考改进,想到用哈希表可以把最后一次for循环省掉,优化到3重for循环,还是超时。最后优化到O(n^2)class Solution {public: int fourSumCount(vector<int>& nums1, vector<int>& nums2, vector<int>& nums3, vec原创 2021-12-25 19:07:23 · 331 阅读 · 0 评论 -
leetcode: 1. Two Sum
leetcode: 1. Two Sum原题链接class Solution {public: // 为了便于判断是否存在,将下标映射统一向后延后1 vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> mp; for (int i = 0 ; i < nums.size(); i++) {原创 2021-12-14 16:51:26 · 884 阅读 · 0 评论 -
leetcode: 202. Happy Number
leetcode: 202. Happy Number原题链接class Solution {public: bool isHappy(int n) { unordered_map<int, bool> mp; while (n != 1) { mp[n] = true; int m = 0; int tmp = n; while (tmp != 0) {原创 2021-12-13 11:09:15 · 3094 阅读 · 0 评论 -
leetcode: 349. Intersection of Two Arrays
leetcode: 349. Intersection of Two Arrays原题链接我的写法:使用unordered_mapclass Solution {public: vector<int> intersection(vector<int>& nums1, vector<int>& nums2) { vector<int> ans; unordered_map<int, bool&原创 2021-12-13 11:02:29 · 338 阅读 · 0 评论 -
leetcode: 242. Valid Anagram
leetcode: 242. Valid Anagram原题链接class Solution {public: bool isAnagram(string s, string t) { if (s.size() != t.size()) return false; int mp[26] = {0}; for (char x : s) { mp[x - 'a']++; } for (ch原创 2021-12-13 10:36:07 · 190 阅读 · 0 评论 -
leetcode: 142. Linked List Cycle II
leetcode: 142. Linked List Cycle II原题链接/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode *detectCycle(ListN原创 2021-12-13 10:03:51 · 349 阅读 · 0 评论 -
leetcode: 19. Remove Nth Node From End of List
leetcode: 19. Remove Nth Node From End of List原题链接/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} *原创 2021-12-12 10:43:08 · 292 阅读 · 0 评论 -
leetcode: 24. Swap Nodes in Pairs
leetcode: 24. Swap Nodes in Pairs原题链接/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int原创 2021-12-12 09:59:06 · 313 阅读 · 0 评论 -
leetcode: 206. Reverse Linked List
leetcode: 206. Reverse Linked List方法一:双指针法,不创建新的链!/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} *原创 2021-12-11 17:03:19 · 465 阅读 · 0 评论 -
leetcode: 707. Design Linked List
leetcode: 707. Design Linked List原题链接设置一个虚拟头结点,方便处理class MyLinkedList {public: // 定义链表结点结构体 struct LinkedNode { int val; LinkedNode* next; //LinkedNode() : val(0), next(nullptr) {} LinkedNode(int x) : val(x), nex原创 2021-12-11 16:37:35 · 216 阅读 · 0 评论 -
leetcode: 203. Remove Linked List Elements
leetcode: 203. Remove Linked List Elements原题链接方法一:直接使用原来的链表来进行移除节点操作:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next原创 2021-12-11 14:47:00 · 87 阅读 · 0 评论 -
leetcode: 59. Spiral Matrix II
leetcode: 59. Spiral Matrix II原题链接class Solution {public: vector<vector<int>> generateMatrix(int n) { vector<vector<int>> ans(n, vector<int>(n, 0)); // 定义一个二维数组,存答案 int count = 1; // 要填的数字 int mi原创 2021-12-10 15:40:33 · 298 阅读 · 0 评论 -
leetcode: 209. Minimum Size Subarray Sum
leetcode: 209. Minimum Size Subarray Sum原题链接解法一:暴力,时间复杂度O(n^2)class Solution {public: int minSubArrayLen(int target, vector<int>& nums) { int n = INT32_MAX; // 不可能达到的数 for (int i = 0; i < nums.size(); i++) {原创 2021-12-10 15:00:22 · 87 阅读 · 0 评论 -
leetcode: 977. Squares of a Sorted Array
leetcode: 977. Squares of a Sorted Array原题链接这道题目注意原数组nums[]本身是有序的,所以平方后最大的数一定是在数组的两边class Solution {public: vector<int> sortedSquares(vector<int>& nums) { vector<int> ans(nums.size(), 0); int k = nums.size() -原创 2021-12-10 10:59:48 · 88 阅读 · 0 评论 -
leetcode: 27. Remove Element
leetcode: 27. Remove Element方法一:暴力,时间复杂度O(n^2)class Solution {public: int removeElement(vector<int>& nums, int val) { int n = nums.size(); for (int i = 0; i < n; i++) { if (nums[i] == val) { f原创 2021-12-10 10:40:27 · 4470 阅读 · 0 评论 -
leetcode: 1005. Maximize Sum Of Array After K Negations(贪心)
leetcode: 1005. Maximize Sum Of Array After K Negations(贪心)原题链接class Solution {static bool cmp(int a, int b) { return abs(a) > abs(b);}public: int largestSumAfterKNegations(vector<int>& nums, int k) { sort(nums.begin(), n原创 2021-12-09 21:47:59 · 293 阅读 · 0 评论 -
leetcode: 367. Valid Perfect Square
leetcode: 367. Valid Perfect Square原题链接class Solution {public: bool isPerfectSquare(int num) { int left = 1; int right = num; int mid; while (left <= right) { mid = left + (right - left) / 2;原创 2021-12-09 14:41:49 · 108 阅读 · 0 评论 -
leetcode: 69. Sqrt(x)
leetcode: 69. Sqrt(x)原题链接题意:求满足 k * k <= x 的最大的kclass Solution {public: int mySqrt(int x) { int left = 0; int right = 46340; int mid; while (left <= right) { mid = left + (right - left) / 2;原创 2021-12-09 14:21:53 · 89 阅读 · 0 评论 -
leetcode :35. Search Insert Position
leetcode :35. Search Insert Position原题链接class Solution {public: int searchInsert(vector<int>& nums, int target) { int left = 0; int right = nums.size() - 1; // 左闭右闭写法 while (left <= right) { int mid =原创 2021-12-09 13:07:30 · 422 阅读 · 0 评论 -
leetcode: 34. Find First and Last Position of Element in Sorted Array
leetcode: 34. Find First and Last Position of Element in Sorted Arrayclass Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int leftBorder = getLeftBorder(nums, target); int rightBorder = getR原创 2021-12-09 11:04:51 · 176 阅读 · 0 评论 -
leetcode: 704. Binary Search
704. Binary Search原题链接二分法有两种写法,分别是左闭右闭写法,和左闭右开写法。以第一种写法为例,定义待查找 target 是在一个在左闭右闭的区间里,也就是[left, right] 中,这样就知道初始条件和判断条件如何写了。class Solution {public: int search(vector<int>& nums, int target) { int left = 0; int right = nums原创 2021-12-07 22:44:57 · 419 阅读 · 0 评论