![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
leetcode
K_Snail
静心学习
展开
-
leetcode 飞机座位分配概率(c++实现)
这题有点小绕,其实举个例子就很明显了:已知1个乘客f(1)时,第1位乘客坐在自己的座位上的概率概率是1;2个乘客f(2)时,第2位乘客坐在自己的座位上的概率概率是0.5;3个乘客f(3)时,就会分成以下三种情况:乘客1坐在乘客1座位上,概率为f(1)=1乘客1坐在乘客3座位上,概率为f(0)=0乘客1坐在乘客2座位上,此时有乘客2、乘客3,座位1、座位3,要使乘客3坐在正确的座位上,就...原创 2019-11-07 13:10:30 · 411 阅读 · 0 评论 -
leetcode 计算右侧小于当前元素的个数 (c++实现)
表示这道题我一开始没有什么思路,在网上发现一个二叉搜索树的方法,感觉很奇妙,分享给大家,原网址见文末,具体思路其实很简单,因为用了二叉搜索树的特性,又快又好,赞! 若对二叉搜索树c++实现有兴趣可以进入我的github上的BST。struct BSTNode { int val; int count; // int count: 这个val代表的次数也就是在nums数组种...原创 2019-08-23 13:57:20 · 353 阅读 · 0 评论 -
leetcode 合并K个排序链表 (c++实现)
这道题耗时40ms,思路是联想到快慢指针,vector有几个元素,我也有几个头指针,若A的头指针最小,就放入结果指针的next中,则A就比别的指针快一步,移到下一位next。问题就是判断如何最小,可以自己写,也可以使用priority_queue这样有序的数据结构。感谢博客最下面的链接,我也学到了如何自定义比较器。代码如下:struct cmp { bool operator()(L...原创 2019-06-28 21:40:07 · 359 阅读 · 0 评论 -
leetcode 全排列
引用与感谢https://www.cnblogs.com/grandyang/p/4358848.html转载 2019-05-07 12:01:48 · 189 阅读 · 0 评论 -
leetcode 子集 (c++实现)
我的思路比较常见,是用回溯法,效果一般,代码如下:class Solution {public: vector<vector<int>> subsets(vector<int>& nums) { vector<vector<int>> res; int n = nums.size()...原创 2019-05-08 10:59:12 · 233 阅读 · 0 评论 -
leetcode 二叉树的锯齿形层次遍历 (java实现)
这一部分出现问题,有待解决。layerRes = new ArrayList<>();class Solution { public List<List<Integer>> zigzagLevelOrder(TreeNode root) { List<Integer> layerRes = new ArrayList&l...原创 2019-05-08 11:26:58 · 394 阅读 · 0 评论 -
leetcode 最长回文子串 (java实现)
class Solution { public static String longestPalindrome(String s) { int len = s.length(); HashMap<Integer, String> re = new HashMap<>(); re.put(0, ""); ...原创 2019-04-20 21:22:44 · 566 阅读 · 0 评论 -
leetcode 字谜分组 (java实现)
我本来的思路是:通过26个字母构成长度为26的数组,这样统计每个单词都会生成对应的数组,数组相同的可以作为HashMap的键,把异位词作为值。但是后来发现数组不能作为键,索性用List直接存放每个词的字符并排序,代码如下,用时40ms:class Solution { public List<List<String>> groupAnagrams(String...原创 2019-04-16 23:14:38 · 127 阅读 · 0 评论 -
leetcode--位1的个数 (java实现)
移位操作总是忘记,在此整理一下java三种移位用法: <<:左移运算符,num << 1,相当于num乘以2 >>:右移运算符,num >> 1,相当于num除以2 >>> :无符号右移,忽略符号位,空位都以0补齐 在本题中使用 >>> ,因为 >...原创 2019-04-03 15:30:46 · 279 阅读 · 0 评论 -
leetcode--罗马数字转整数(java/python最快实现)
执行时间23ms,少于100%的提交记录,我还有点吃惊,毕竟是新手。 思路其实比较简单:罗马符号对应阿拉伯数字,如果小的罗马符号在大的罗马符号左边,那么应该 (-小的罗马数)+大的罗马数。发现这个规律以后,想通过顺排序进行相加,遇到上述情况就将符号变成负号,但是判断起来比较麻烦,所以就采用倒排序进行相加,遇到小数就减。 倒排序之后的规律应该如leetcode的一道股票操作题...原创 2019-04-02 10:54:12 · 119 阅读 · 0 评论 -
leetcode--3的幂 (java实现)
84 ms的普通解法,最先想到:class Solution { public boolean isPowerOfThree(int n) { if (n == 1) return true; if (n < 3) return false; while (n % 3 == 0) { if (n == ...原创 2019-04-01 23:12:37 · 252 阅读 · 1 评论 -
leetcode 缺失数字 (java实现)
相比较下面最快的方法,我的方法还算是中规中矩了:开辟一个和给定数组一样长的布尔型数组,遍历若数字不缺失,则布尔型数组相应位置为true,最后再遍历布尔型数组,找到缺失的数。感觉还是慢了,毕竟用了两个for循环。class Solution { public int missingNumber(int[] nums) { boolean[] cor = new bool...原创 2019-04-05 22:34:57 · 300 阅读 · 0 评论 -
leetcode--计数质数 (java实现)
class Solution { public int countPrimes(int n) { int count = 0; for (int i = 2; i < n; i++) { if (isPrimes(i)) count ++; } return cou...原创 2019-04-01 00:35:19 · 415 阅读 · 0 评论 -
leetcode 有效的括号 (java最快实现/python实现)
我一开始以为可以用回文做,后来发现还是有一点不同的,并不是完全对称的。要想实现O(n)的复杂度,只要遍历一次,我没想到不添加多余空间办法,只是想到正常思路,用时4ms,低于100%的提交记录。 思路:首先是对偶性,如果不是成对出现,一定是错的,其次会出现一层套一层的情况。那么就想开辟一个空间,遍历整个字符,依次添加到空间中,每一个字符看是否在空间的最后找到另一半,没找到就添加到空间...原创 2019-04-04 23:59:19 · 88 阅读 · 0 评论 -
leetcode--汉明距离 (java最快实现/python实现)
基于之前一道leetcode题*位1的个数*,印象比较深刻,这道题可以在前一道题的基础上进行修改,利用 n & (n - 1) 的方法获得不错的效果,用时只要1ms,低于100%提交记录的用时,代码如下:class Solution { public int hammingDistance(int x, int y) { int z = x ^ y; ...原创 2019-04-04 15:37:51 · 284 阅读 · 0 评论