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

[CareerCup] 【第三轮】6.16-6.22 CareerCup 1.1

 
🔗
qianhuang 2014-6-18 15:32:15 | 只看该作者
全局:
daisyang 发表于 2014-6-18 00:25
should CHAR_MAX be 127 ?

http://www.cplusplus.com/reference/climits/
either SCHAR_MAX or UCHAR_MAX
一般一个char是一个字节,所以我默认ASCII码也是256了。。网上查了一下,标准ASCII码是128种,后面的128是扩展的。
回复

使用道具 举报

🔗
锦木千束 2014-6-18 19:53:43 | 只看该作者
全局:
smzfeng 发表于 2014-6-18 15:18
space complexity should be O(N)
more comments in your code

谢谢学长啊,我先继续学学算法,还是有点不太熟悉复杂度这个东西
回复

使用道具 举报

🔗
fang_wu 2014-6-18 22:34:57 | 只看该作者
全局:
jaly50 发表于 2014-6-18 00:00
【解题思路】
本来只想着记录26个字母是否出现过。看了前面的大神,才意识到string包括ascii里256种字符。 ...

不要大神,我就是一小菜。。。
回复

使用道具 举报

全局:
monkerek 发表于 2014-6-16 00:20
【解题思路】
我理解的是题意是不能用hash和bitmap等其他数据结构?
直接对string排序, 逐次比较相邻的 ...

用了sorted()产生链表空间在赋值前空间复杂度还是O(1)吗?这个sort不是in_place的
回复

使用道具 举报

全局:
【解题思路】sort and compare
【时间复杂度】O(n)
【空间复杂度】O(n)
【gist link】
https://gist.github.com/tangxukai/8780729bd26dab49d068
---------------OPTional,如果觉得test case比较好,欢迎写出来分享----------------------
【test case】简洁的代码胜于一切,LOL
回复

使用道具 举报

🔗
bearkino 2014-6-21 15:25:13 | 只看该作者
全局:
【解题思路】
看了之前有人的思路,直接进行了排序,然后再一一比较
【时间复杂度】
使用了merge sort,时间复杂度就是sort的时间,O(nlogn)
【空间复杂度】
O(1)
【gist link】
https://gist.github.com/UncleGarden/424b3153a728220aa1c8
回复

使用道具 举报

🔗
Tsien 2014-6-21 22:55:36 | 只看该作者
全局:
【解题思路】
利用bitmap记录每个出现过的字符。
根据字符先判断该位是否为0,若是则该位置1;否则返回false.
【时间复杂度】
O(n)
【空间复杂度】
O(1)
【gist link】
https://gist.github.com/Tsien/a39a2edf6c4535eba329
回复

使用道具 举报

🔗
七00夜 2014-6-21 23:25:14 | 只看该作者
全局:

【解题思路】
两层FOR循环从前往后挨个对比,相同的就return false, 全部检测完毕,return true, 没有考虑其他边界条件
【时间复杂度】

【空间复杂度】

【gist link】https://gist.github.com/5bb7914c8336d1166f41.git
回复

使用道具 举报

🔗
sanguine 2014-6-23 10:31:17 | 只看该作者
全局:
请问一下这个题如果用bitset该如何写?据说这样很好的节省了空间?

然后在stackoverflow上看到另外一种解法,用位运算的==但是完全看不懂==也不知道思路在什么地方,能帮忙讲解吗
  1. public static boolean isUniqueChars(String str) {
  2.   int checker = 0;
  3.   for (int i = 0; i < str.length(); ++i) {
  4.     int val = str.charAt(i) - ‘a’;
  5.     if ((checker & (1 << val)) > 0) return false;
  6.     checker |= (1 << val);
  7.   }
  8.   return true;
  9. }
复制代码
回复

使用道具 举报

🔗
sanguine 2014-6-23 10:38:03 | 只看该作者
全局:
qianhuang 发表于 2014-6-16 09:40
【解题思路】
1. 如果字符是ASCII码,用256大小的bool数组或者bitset去存该字符是否出现过。
2. 如果空间 ...

能稍微解释下bitset吗?没有理解?

看你的代码感觉和普通的Boolean[256]或int[256]数组一样啊,就是用了bitset类,每次有值则set设置为1,为什么这样就节省空间了呢?
回复

使用道具 举报

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

本版积分规则

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