我想用python题库刷题训练刷题(比如leetcode)但是担心有的公司面试不欢迎用python题库刷题训练写代码?不知道各位大佬怎么看?
}
十五天的时间刷完了所有的简單题,避免遗忘所以开始简单题的二刷,第一遍刷题的时候过得速度比较快因为我觉得基础不好的我,不要硬着头皮去想最优的方法而是应该尽量去学一些算法思想,所以每道题只给自己5-10分钟的时间想想不出来的就去找相关的答案,所以刷的比较快二刷的时候按照leetcode官方给出的题目分类展开,同时将解题思路记录于简书加深印象。
想要一起刷题的小伙伴我们一起加油吧!
利用异或,两个相同的數的异或为0
利用十进制转二进制的方法,考虑十进制13
二进制是1101前面补全0,而反转的二进制是1011后面补全0
所以我们只需要按照除的顺序依次进入数组,后面不组32位用0补齐即可
这里用到的二进制知识是:一个数与比自己小1的数按位与运算,会将自己所对应的二进制数的最後一个1变为0
跟191题一样的思路,2的倍数的对应二进制数只有1位是1
之前这道题介绍过一种等差数列求和公式的思路,现在我们用前两道题嘚思路进行求解
4的倍数首先要满足2的倍数的条件然后他减1要是3的倍数。
"""有疑问,python题库刷题训练把有符号数当作无符号数处理"""
可以用hash table当然哽简单的还是利用两个相同的数异或值为0。
先取异或然后利用一个数与比自己小1的数按位与运算,会将自己所对应的二进制数的最后一個1变为0这个特点
利用与二进制位全1的数进行按位异或运算是将二进制位对位取反的性质。
总结一下简单题中涉及的二进制的基本知识點有:
1、两个相同的数,按位异或值为0
2、一个数与比他小1的数按位与运算相当于把该数的二进制位中的最后一位1变为0
3、二进制的加法,鈳以用异或和按位与运算来解决参照371题。
如果你喜欢我写的文章可以帮忙给小编点个赞或者加个关注,我一定会互粉的!
如果大家对leetcode感兴趣欢迎跟小编进行交流,小编微信为sxw2251加我要写好备注哟!:
}