LeetCode
文章平均质量分 65
wangfy_
这个作者很懒,什么都没留下…
展开
-
#### LFU(least frequently used)最近最不经常使用算法 ####
部分内容摘自 https://leetcode-cn.com/problems/lfu-cache/solution/lfuhuan-cun-by-leetcode-solution/lfu问题get(int key)- 如果键key 存在于缓存中,则获取键的值,否则返回 -1 。put(int key, int value)- 如果键key 已存在,则变更其值;如果键不存在,请插入键值对。当缓存达到其容量capacity 时,则应该在插入新项之前,移除最不经常使用的项。在此问题中...转载 2022-03-14 17:22:11 · 525 阅读 · 0 评论 -
LeetCode:402. 移掉K位数字 (Medium)
题目给定一个以字符串表示的非负整数num,移除这个数中的k位数字,使得剩下的数字最小。https://leetcode-cn.com/problems/remove-k-digits/思路要想保证是最小数,必须是从左到右递增的,即:123456。使用单调栈:维护一个递增栈,但当前元素小于栈顶元素,则移掉栈顶元素实现string removeKdigits(string num, int k) { string res; int n=num....原创 2021-04-09 19:45:25 · 127 阅读 · 0 评论 -
1. Two Sum
c++://O(n) 利用哈希map来寻找某元素class Solution {public: vector<int> twoSum(vector<int>& nums, int target) { unordered_map<int, int> m; vector<int> v; ...原创 2018-04-15 16:30:19 · 668 阅读 · 0 评论 -
2. Add Two Numbers
c++:/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListN...原创 2018-04-20 17:31:21 · 214 阅读 · 0 评论 -
Leetcode :167. Two Sum II - Input array is sorted (Easy)
题目描述:在有序数组中找出两个数,使它们的和为 target。 Input: numbers={2, 7, 11, 15}, target=9 Output: index1=1, index2=2使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。如果两个指针指向元素的和 sum == target,那么得...原创 2019-03-05 13:57:28 · 168 阅读 · 0 评论 -
Leetcode :633. Sum of Square Numbers (Easy)
题目描述:判断一个数是否为两个数的平方和。 Input: 5 Output: True Explanation: 1 * 1 + 2 * 2 = 5public boolean judgeSquareSum(int c) { int i = 0, j = (int)Math.sqrt(c); while(i <= j) { int powSum = i * i...原创 2019-03-05 18:01:19 · 145 阅读 · 0 评论 -
判断一棵树是否是完全二叉树
根据完全二叉树的定义,如果二叉树上某个结点有右孩子无左孩子则一定不是完全二叉树;否则如果二叉树上某个结点有左孩子而没有右孩子,那么该结点所在的那一层上,该结点右侧的所有结点应该是叶子结点,否则不是完全二叉树。import java.util.LinkedList;import java.util.Queue;public class tmp { public static class ...原创 2019-03-06 13:26:59 · 1766 阅读 · 0 评论 -
Leetcode :345. Reverse Vowels of a String (Easy)
反转字符串中的元音字符 Given s = "leetcode", return "leotcede".使用双指针指向待反转的两个元音字符,一个指针从头向尾遍历,一个指针从尾到头遍历。private final static HashSet<Character> vowels = new HashSet<Character>(Arrays.asList('a...原创 2019-03-06 20:46:25 · 165 阅读 · 0 评论 -
荷兰国旗问题
给定一个数组arr,和一个数num,请把小于num的数放在数组的左边,等于num的数放在数组的中间,大于num的数放在数组的右边。要求额外空间复杂度O(1),时间复杂度O(N)思路从头遍历序列,将当前遍历元素与num比较。利用两个指针L、R,将L指向首元素之前,将R指向尾元素之后。若<num,则将其与L的右一个元素交换位置,并遍历下一个元素,右移L;若=num则不操作,直接遍历...原创 2019-03-07 18:50:01 · 245 阅读 · 0 评论