周赛链接:https://leetcode-cn.com/contest/weekly-contest-130
第一题:水题
第二题:网上有关于-2进制的公式,就不赘述。下面讲一下我自己的解法。
用数组a[i]存储其二进制
- 首先对于i= 1,3,...,奇数位进行处理,若奇数位为0,不做处理,若奇数位为1,则向前面的偶数位进1
- 对于i=0,2,...,偶数位进行处理时,若偶数位为0,1,均不做处理,若偶数位为2,此时需分两种情况考虑,若其前面的奇数位为1,则将此偶数位置为0,其前面的奇数位也置为0;若其前面的奇数位为0,则将此处的偶数位置为0,奇数位置为1,其前面的偶数位加1
第三题:用栈
从左向右扫描,栈空就将其下标入栈;栈非空,比较当前元素与栈顶元素下标对应元素的大小,若小于等于,则将当前元素的下标入栈,反之,则将栈顶元素弹出,栈顶元素下标对应的值即为当前元素