111qqz的小窝

老年咸鱼冲锋!

ubuntu 包管理(apt-get)损坏的解决办法

症状是不管安装什么,都会说有一大堆依赖无法安装。。。

大概是: a depends b[i],but b[i] is not be installed. (b==0..n)

最后会提示Unable to correct problems, you have held broken packages

解决办法:用synaptic工具,把可能存在问题的包都清除掉。

参考资料

顺便想吐槽。。。ubuntu的包管理工具好辣鸡啊。。

随便装点东西竟然就损坏了?

我刚才装chrome,然后出了错误,提示我apt-get -f install 解决问题。。。

然后包管理就挂了?

想起当年虽然装的第一个发行版是ubuntu,但是并不好用啊?

好好使用的第一个还是mint

所以其实ubuntu不是很适合新手吧。。。只不过知名度高。。。。资料多。。。

要我说  manjaro 或者 linux mint 都要比ubuntu新手友好的多啊orz

install galliumOS on chromebook with chrx

我的chromebook 是 samsung 3

查阅Hardware Compatibility 可以知道我的cb支持 gallium,对应的cpu 是Intel Braswell

然后去galliumos 官网 下载相应版本。  (发现这种做法并不需要自己下载。。。)

安装 galliumOS大体有两种方法,一种是完全去掉chromeOS,这种方法需要需要拆机去除写保护。。。我嫌麻烦。。。于是打算另一种,使用chrx 

步骤如下:

  1. Enable Developer Mode (process is model-specific; for Acer C720, press ESC+F3(Refresh)+Power), then reboot
  2. Load ChromeOS by pressing CTRL+D at the white “OS verification is OFF” screen
  3. Configure your Wi-Fi network if necessary, then log in (Guest account is fine)
  4. Open the ChromeOS Terminal by pressing CTRL+ALT+T, and enter shell at the prompt
  5. Update firmware, if necessary (required for Bay Trail and Braswell models, recommended for Broadwell and Skylake models, optional for Haswell models — see chromebooks)
  6. Run chrx: cd ; curl -Os https://chrx.org/go && sh go (see options)
  7. Follow on-screen instructions to prepare your Chromebook for installation
  8. Reboot, then repeat steps 2-4 and 6 to install and configure your new system

对于braswell model,必须要刷一个固件才可以:mrchromeboxa

 

刷好之后按照步骤安装。。。

 

 

安装成功以后。。。

做了以下事情:

  • 安装搜狗输入法
  • 安装中文字体
  • 安装vim
  • 安装fish个
  • 安装shadowsocks
  • 安装guake
  • 登录chromium 同步各种插件
  • 安装aria2
  • 安装franz
  • 安装ssh
  • 安装variety
  • 使用xmodmap,将搜索键映射到win,映射了几个不用的功能键(到f1,f3 Page_Down,Page_Up)

 

补一个xmodmap的配置文件。

 

 

 

 

 

为什么。。。为什么会变成这样呢。。。

连着考试。。。

取消考试周这做法就是蠢。。。

白天上课晚上考试。。。

说得好像没有考试周大家就不会复习了一样。。。

结果就只能是在白天的课上复习。。。

又影响听新的课,又影响复习。。。。

 

然后昨天还推了鹅厂的面试。。。不知道会不会留下什么不好的印象T T

连着考试真心要死啊。。。

身体完全受不了。。。

这还只是期中。。。

想想我们前半学期学完了  文档+专业英语+信号+测试+uml+游戏+计网,7门课。。。。

那就意味着期末还有12门。。。。。。。。

感觉真的。。。。。。。为什么。。。要这么多课呢。。。。。。。

 

thinkpad 电源阈值管理

嘛。。其实这个之前用过,不过忘了叫什么名字。。。

就一直在用tp_smapi了。。。archlinux_wiki_tp smapi  就。。。也还凑活。。。

结果最近好像挂了啊? 可能是因为这个东西太久没更新,archlinux又天天滚。。。

结果发现。。。之前用的那个神器。。就在我的收藏夹里orz

TLP

那才叫爽!

记录一些关于下载工具的想法

百度云限速实在是略恶心。。。

用某插件可以将百度云的下载导出成aria2 的命令…

然后aria2 下载…还是可以1Mps往上的…..

youtube视频的话,youtube-dl是神器。。。

放在搬瓦工上下可以平均可以 50M/s..

然后下到服务器上以后要再弄会本地…

暂时用了caddy..

nginx的多线程方案打算有时间弄…

有点后悔没有续费之前作为网盘的vps了。。。

还有一个想法:

用rsync,大概就可以直接后台把vps上的东西down到本地了。。。

 

leetcode162. Find Peak Element (O(lgn)复杂度寻找峰值)

A peak element is an element that is greater than its neighbors.

Given an input array where num[i] num[i+1], find a peak element and return its index.

The array may contain multiple peaks, in that case return the index to any one of the peaks is fine.

You may imagine that num[-1] = num[n] = -.

For example, in array [1, 2, 3, 1], 3 is a peak element and your function should return the index number 2.

click to show spoilers.

Note:Your solution should be in logarithmic complexity.

思路:

为什么能lgn。。。

首先要想明白,这样的峰值是一定存在的(因为最左最右已经负无穷了。

如果中间元素的值,比它右边相邻元素的小,说明什么呢?

说明右边区间一定存在峰值。

为什么?

现在a[mid]<a[mid+1]

如果a[mid+1]>a[mid+2],那么 a[mid+1]就是峰值

如果a[mid+1]<=a[mid+2],那么可以继续缩小区间,到[mid+2,n-1]

由于a[n]为负无穷,因此至少会出现一个 a[x]>a[x+1]的情况,此时a[x]就是峰值。

想清楚了这点就好办了。二分就好。

 

leetcode 152. Maximum Product Subarray (最大连续子序列乘积,dp)

 

Find the contiguous subarray within an array (containing at least one number) which has the largest product.

For example, given the array [2,3,-2,4],
the contiguous subarray [2,3] has the largest product = 6.

思路:由于有正,有负,还有0.。。所以比最大子串之和要复杂一些。。。

dp[i].max表示到当前位置的最大乘积。

dp[i].min表示到当前位置的最小乘积。

dp[i].max = max{dp[i-1].max*a[i],dp[i-1].min*a[i],a[i]};

dp[i].min同理

边界dp[i].max = dp[i].min = a[0]

 

 

leetcode 228. Summary Ranges

Given a sorted integer array without duplicates, return the summary of its ranges.

For example, given [0,1,2,4,5,7], return ["0->2","4->5","7"].

题意:把连续的数连续表示

思路:模拟。注意有负数,注意有-2147483648这种数据。

本来还想着,可能是leetcode加数据的审核机制太松,导致被人加了奇怪的数据。。。

结果发现出题人和加数据的人是一个人啊?

不给数据范围,加这种奇怪的数据很有意思? 分分钟卡掉你的标程啊?

感觉像吃了苍蝇一样恶心。。一句话,出题人傻逼

 

 

leetcode 209. Minimum Size Subarray Sum (尺取法)

Given an array of n positive integers and a positive integer s, find the minimal length of a contiguous subarray of which the sum ≥ s. If there isn’t one, return 0 instead.

For example, given the array [2,3,1,2,4,3] and s = 7,
the subarray [4,3] has the minimal length under the problem constraint

 

思路:尺取即可。。好久没写,竟然调了半天。。。

 

leetcode 229. Majority Element II (O(1)空间找出现次数大于n/3的元素)

Given an integer array of size n, find all elements that appear more than n/3 times. The algorithm should run in linear time and in O(1) space.

题意:给你n个数,要求找出出现此处大于n/3的。。。

思路:之前做过一个找出n个数出现此处大于n/2的题目,思想是“非吾族类,其心必异”。。

这道题类似。。。容易知道题目要求的数最多有2个,最少有0个。。。

由于最多两个“族类”,在更新的时候,要判断是不是友军的人…毕竟朋友妻不可欺嘛(什么鬼

最后记得扫一遍,check一下,检查出现此处是否满足题意。

 

 

leetcode 75. Sort Colors

Given an array with n objects colored red, white or blue, sort them so that objects of the same color are adjacent, with the colors in the order red, white and blue.

Here, we will use the integers 0, 1, and 2 to represent the color red, white, and blue respectively.

题意:一个数组,由0,1,2组成,现在要求升序排列

思路:无脑做法就是计数排序,扫两遍,时间复杂度O(n),空间复杂度O(1)

如果只扫一遍呢?

一个容易想到的思路是两个指针:

需要注意 的是,交换2后要再次遍历到当前位置,或者说,只有当不交换2的时候,才执行cur++

 

 

 

还有一个神奇的思路:r,w,b分别表示下一个对应颜色要放的位置。

如果当前是0,那么0,1,2都要后移一个。

如果当前是1,那么1,2的位置需要后移。

如果当前是2,那么2的位置需要后移。

 

leetcode 11. Container With Most Water (two pointer)

Given n non-negative integers a1, a2, …, an, where each represents a point at coordinate (i, ai). n vertical lines are drawn such that the two endpoints of line i is at (i, ai) and (i, 0). Find two lines, which together with x-axis forms a container, such that the container contains the most water.

Note: You may not slant the container and n is at least 2.

题意:n条竖直的线段 (i,0)->(i,a[i]),从中选2条,和x轴共同组成一个开口的容器,问容器的最大面积。

思路:一开始想错了,以为是最大连续矩形面积…还在想leetcode竟然考单调栈???

然而实际上只取两个线段,中间的线段有没有,长度,都是无所谓的。

因此two pointer就好了。。。

 

leetcode 16. 3Sum Closest (k-sum问题,two pointer)

Given an array S of n integers, find three integers in S such that the sum is closest to a given number, target. Return the sum of the three integers. You may assume that each input would have exactly one solution.

思路: 排序,然后two pointer,复杂度 O(n^2)

 

leetcode 18. 4Sum (k-sum问题,two pointer)

Given an array S of n integers, are there elements a, b, c, and d in S such that a + b + c + d = target? Find all unique quadruplets in the array which gives the sum of target.

Note: The solution set must not contain duplicate quadruplets.

思路: O(n^2)枚举两个元素,变成2-sum问题,总体复杂度O(n^3)

hash的解法以后补

 

some important things

  • 不要午睡,不要午睡,不要午睡