楼主: Myron2017
跳转到指定楼层
上一主题 下一主题
收起左侧

刷题记录帖子

🔗
 楼主| Myron2017 2020-6-15 09:43:33 | 只看该作者
全局:
1252. Cells with Odd Values in a Matrix 其实发现还有 只记录是不是 odd 的 col 和 row 然后进行 加和求解的。

不过还是比较简单的, bitset 来做的实在是 塞高。
加个链接,这个答案好。

https://leetcode.com/problems/ce ... 3-2-methods:-time-O(m-*-n-+-L)-and-O(L)-codes-w-comment-and-analysis.
回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-15 23:31:33 | 只看该作者
全局:
700. Search in a Binary Search Tree,  基操如何在BST中找数字
回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-16 09:59:42 | 只看该作者
全局:
LC100. Same Tree 还是二叉树的基操,recursive 写法练习加深。

https://mp.weixin.qq.com/s/PUoQKGTvbj02qc7LM1zdUw

回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-16 13:25:50 | 只看该作者
全局:
Lc 401. Binary Watch

真是巧妙到了极致的一道题目,本来考察的是 DP 一样的组合题目,Discussion 的一个答案直接拆穿了,其实可以很简单的。

就是把 一天全部的是十二小时的情况用二进制表示一遍,然后看是不是出现了符合题目要求的 1 的个数,然后给出答案。

暴力但是高效的解法!赞!


  1. class Solution:
  2.     def readBinaryWatch(self, num: int) -> List[str]:
  3.             return ['%d:%02d' % (h, m)
  4.             for h in range(12) for m in range(60)
  5.             if (bin(h) + bin(m)).count('1') == num]
复制代码
回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-17 13:10:31 | 只看该作者
全局:
468. Validate IP Address

这道题目的特点是繁琐,并不是有挑战性。但是即使这样还是能够看到优雅的解法。学习了。


回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-17 14:04:45 | 只看该作者
全局:
102. Binary Tree Level Order Traversal

也是需要记忆的经典题目,二叉树的 level order traversal

初始化的时候可以直接给 queue 添加 root ,然后只要 queue 不空就继续。同时记住,while queue 不空的内部需要记录每次每层到底有多少个 node。因为每次都会添加当前层的 left 和 right, 所以如果不记住 current 层有多少 nodes 就会弄混了。

同时,在完全 loop 了当前层之后就可以 进入下一层,这个时候还是要重新赋值数组即可。


回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-17 14:28:03 | 只看该作者
全局:
98. Validate Binary Search Tree

一个思路是,中序遍历,然后检查是不是有错位的元素,因为 BST 的中序遍历应该是一个 acsecding array。

当然还有一个思路就是,直接去看每一个节点是不是符合,当然为了减少误判,需要传入额外的参数,是 left 和 right ,初始直接设置为 float('-inf') 和 float('inf') 这样就可以重复利用了,同时每次比较的时候,你的 node 都是知道 current 的全局范围信息的。

回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-18 12:30:27 | 只看该作者
全局:
1385. Find the Distance Value Between Two Arrays

这道题目真是坑爹啊,题目描述不清楚。其实就是固定了两个数组和一个输入的 d,然后去检查到底多少个数组 pair 不满足 distance 的要求,靠的太近。
直接二分查找解决。
回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-18 12:35:35 | 只看该作者
全局:
965. Univalued Binary Tree

简单题目,就是复习 BST 的递归写法。

回复

使用道具 举报

🔗
 楼主| Myron2017 2020-6-19 20:04:51 | 只看该作者
全局:
LC 1122. Relative Sort Array Easy 题目,但是看 Discussion 还是能看到值得学习的代码。ans.extend([i] * cnt.pop(i))   实在是精彩的代码。

  1.    

  2. def relativeSortArray(self, arr1: List[int], arr2: List[int]) -> List[int]:
  3.         ans, cnt = [], collections.Counter(arr1)         # Count each number in arr1
  4.         for i in arr2:
  5.             if cnt[i]: ans.extend([i] * cnt.pop(i))      # Sort the common numbers in both arrays by the order of arr2.
  6.         for i in range(1001):               
  7.             if cnt[i]: ans.extend([i] * cnt.pop(i))      # Sort the numbers only in arr1.
  8.         return ans
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表