📣 独立日限时特惠: VIP通行证立减$68
楼主: Sabrina_0413
跳转到指定楼层
上一主题 下一主题
收起左侧

今天开始刷题!希望自己可以坚持下去

 
🔗
vtiaocao 2018-3-21 23:10:24 | 只看该作者
全局:
Sabrina_0413 发表于 2018-3-21 06:03
2017年3月21日。652;662
除了一道不喜欢的题,今天算是把Tree下面的easy和medium都刷完啦,明天开始刷Two  ...

赞~我觉得recursion应该也算dfs哦
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-21 23:33:40 | 只看该作者
全局:
vtiaocao 发表于 2018-3-21 23:10
赞~我觉得recursion应该也算dfs哦

嗯呐  算是的。我还没很系统的了解DFS。。。目前只知道是深度。。。
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-21 23:35:51 | 只看该作者
全局:
3月21,刚刷了两道Two pointers的,也贴上吧:easy:28;125
125. Valid Palindrome:
s[l].isalnum() ==>判断s[l]是否为字母。
s[r].lower()==》将某元素变为小写; s = s.lower()==>把字符串均变为小写。
char = "()[]{}<>.,?;:' @!#$%^&*-+=`\\~\"" ==》所有非字母的字符;
s = s.replace(i,'')==》将所有i均用‘ ’替换。
S[::-1]==>把字符串反转;
只留下字符串中的字母:(1)s = filter(str.isalnum, str(s));(2)res = [i.lower() for i in s if i.isalnum()];(3)s = "".join([c.lower() for c in s if c.isalnum()])
回复

使用道具 举报

🔗
解放路 2018-3-23 08:07:11 | 只看该作者
全局:
签个到一起刷!
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-23 09:17:28 | 只看该作者
全局:

(๑•̀ㅂ•́)و✧加油!
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-23 09:18:27 | 只看该作者
全局:
3月22日:167;344;345;349;15
167. Two Sum II - Input array is sorted: (1)直觉:two pointers;(2)定义一个hashtable,hashtable={num:position}。遍历array,判断target-num的值是否在hashtable中,若没有,则将{num:position}放进hashtable中。for i,num in enumerate(numbers)。
注:对于string,如s='dafad',不能用s[3]来寻找里面的字符.
344. Reverse String==>反转公式:s=s[::-1].
(1) 先把string转化为array,array=list(string); 然后再把array反转后,转化为string:''.join(array)
(2)recursion==>效率很低
345. Reverse Vowels of a String:
vowel:a,e,i,o,u,A,E,I,O,U
349. Intersection of Two Arrays: (1)进行排序进行比较--两个指针分别指向两个array;(2)取最短的那个,遍历,进行比较;(3)return list(set(nums1) & set(nums2))
注:s.sort()==>改变s本身;t=sorted(s)==》不改变s本身
532. K-diff Pairs in an Array
该题要注意K小于0的情况。建立hashtable,用来记录num在array中出现的次数。若K==0,则统计hashtable中,value大于等于2的key;若k>0,则判断(K+key)是否为hashtable的key,并统计个数
16. 3Sum Closest:该题的关键点在于如何计算sum,array排序后:
for i in range(len(nums)):
            j=i+1
            k=len(nums)-1
            sum=nums[i]+nums[j]+nums[k]==》然后进行判断
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-24 12:01:29 | 只看该作者
全局:
3月23日:80; 209;524
80. Remove Duplicates from Sorted Array II:
本题的关键点:(1)如何找到重复次数超过2的值:a. 利用sort的特性(首选); b.定义hashtable进行统计(2)如何删除掉这些多余的值:a. i=0,nums[i]=好num,i++; b. 将“好”num放入新的array中,然后将新的array赋值给nums;c. 将多余的num放入到array的最后面---效率低。
注意点:不仅需要返回个数n,同时也要保证nums的前n个元素是”好“数据
209. Minimum Size Subarray Sum
(1) 建立两个指针,一个指向指头部,一个指向尾部;
(2)生成一个array,array[i]=sum of nums[0]+...+nums[i-1]。然后遍历array。。。
524. Longest Word in Dictionary through Deleting
本题的关键点在于:(1)如何判断string符合要求;遍历s和string。(2)找到最长的符合要求的string==》关键处理好相同长度时,且字母最靠前或者最先出现的。将原array进行排序:d.sort(key = lambda x: (-len(x), x))==》长度倒序排列,且按照字符串的字母降序排列
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-25 08:34:32 | 只看该作者
全局:
开始写毕业论文了。。呜呜呜呜~~
今天下午要被“推”着去参加一个羽毛球比赛,希望打的不要太烂,加油~!
3月25:567
567. Permutation in String
除了暴力破解,可以定义两个array=[0]*26,用来记录其对应26个字母出现的次数。==》并使用sliding window. Ord('a')=97
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-26 08:41:56 | 只看该作者
全局:
3月25日:713,763。
Two pointers 的easy 和medium 昨天结束啦~~继续加油~!
昨天羽毛球打的不错,赢了7局输了9局,还拿了个最受欢迎奖,只是。。。奖品还没看到就被我弄丢了。。。
"713. Subarray Product Less Than K
今天学到了一个新的模块:bisect
这道题需要注意是连续子集的个数(刚开始理解错了)。Use sliding Windows again。
刚开始不太能搞清楚right - left 代表的东东,要多练习该类题
763. Partition Labels
本题的关键是找到开头字母最后出现的位置。dic={c:i for i,c in enumerate(S)}"
回复

使用道具 举报

🔗
 楼主| Sabrina_0413 2018-3-26 21:44:52 | 只看该作者
全局:
3月26日:14;20;38;58;67。今天的题都是easy。。。。
14. Longest Common Prefix
解法:(1)设定指针,依次找出common prefix;(2)二分法
注:string 不能用,append()
20. Valid Parentheses: 运用stack,并建立hashtable来存储括号对
回复

使用道具 举报

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

本版积分规则

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