获得徽章 18
题目数据量太少,直接三重循环暴力。掘友们有没有优化的方法?
使用前缀和。根据题意符合条件的下标位置i:sum = nums[i]+2*pre[i]。
暴力法:按照要求首先f(),然后两个for循环比较。(数据量小)
二分法:按照要求首先f(),然后分别记录对应的f值,二分查找f(queries[i])<f(w)的数目
二分查找简单应用题,搜寻左边界。当nums[mid]<target时l = mid+1,nums[mid]>=target时r = mid-1。最后返回l。
字符串+括号=栈,使用栈模拟。不是)就入栈,遇到(就出栈添加到sb中,然后入栈。最后将栈中的元素从栈底开始遍历。
这是一道非常经典的双指针或者是是说贪心问题。要向盛最多的水,容器有高宽决定。首先从宽的最大开始,即左右指针,计算当前能盛的水的容量。由于高度是由两边高度中较为低的决定的(假设高度较高的为H,较低的为h),所以我们指针移动应该是移动高度为低的那个指针,这样才能有可能存在比当前高度高的边[0,10^4],从而才有可能比当前的容量大。如果是移动高度为高的那个指针,高度的范围是[0,h]同时宽w是不断减少的,所以是不可能比当前容量大的。
二分。二分枚举 礼盒的最大甜蜜度 求出此甜蜜度下能选出的个数cnt
首先按照题目模拟得出按条件操作的数组,接着使用快慢指针,将数组为0的元素移动到数组后面。
简单模拟题,将数组排序,然后分别计算两个左右指针的平均值,加入到Set中,接着移动左右指针。注意要是double计算。
下一页