我试图在每个应用程序的基础上找出Android上的数据使用情况.像Android数据使用应用程序和配额/上限监视器小部件:永远不会收取额外的数据或再次上限!.
我查看了Stack Overflow问题如何在Android环境中检测数据使用情况.
但它并没有多大帮助.
ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE);
ActivityManager.MemoryInfo mInfo = new ActivityManager.MemoryInfo();
activityManager.getMemoryInfo( mInfo );
List<RunningAppProcessInfo> listOfRunningProcess = activityManager.getRunningAppProcesses();
Log.d(TAG, "XXSize: " + listOfRunningProcess.size());
for (RunningAppProcessInfo runningAppProcessInfo : listOfRunningProcess) {
if (runningAppProcessInfo.uid > 1026)
{
Log.d(TAG, "ANS " + runningAppProcessInfo.processName +
" Id :" + runningAppProcessInfo.pid +
" UID: " + runningAppProcessInfo.uid);
}
}
Run Code Online (Sandbox Code Playgroud)
我按照Akos Cz的建议尝试了上面的代码.但是,与上面提到的不同,所有UID都是数字app_79.这样可以吗?
最近,我接受了采访.我被要求设计一个会议日程安排程序,就像在Microsoft Outlook日历或gmail日历中一样.我建议每天创建一个48的数组.每隔30分钟代表阵列入口.
我必须确保下一次约会不会与之前的会议发生冲突.
我的解决方案工作正常,但它浪费了太多的内存.
任何人都可以告诉我如何找到更好的解决方案来检测会议碰撞.
我不知道一开始的所有会议.它们将在以后随机添加.
谢谢,
谷歌采访时向我询问了这个问题.我能做到O(n*n)......我可以在更好的时间做到这一点.字符串只能由1和0组成.
定义:
X和Y是由0或1组成的字符串
D(X,Y) =从X和Y开始删除开头常见的东西.然后从两个字符串中添加剩余的长度.
例如
D(1111, 1000)=只有第一个字母是常见的.所以剩下的字符串是111&000.因此结果length("111")&length("000")= 3 + 3 = 6
D(101, 1100)=只有前两个字母是常见的.所以剩下的字符串是01&100.因此结果length("01")&length("100")= 2 + 3 = 5
非常明显的是,发现这样一个疯狂的距离将是线性的.O(M).
现在的问题是
给n输入,比如说
1111
1000
101
1100
Run Code Online (Sandbox Code Playgroud)
找出可能的最大疯狂距离.
n是输入字符串的数量.m是任何输入字符串的最大长度.
O(n 2*m)的解决方案非常简单.它能以更好的方式完成吗?我们假设m是固定的.我们能比O(n ^ 2)做得更好吗?
http://www.glassdoor.com/Interview/Google-Interview-RVW2382108.htm
我试图找到解决这个问题的方法.但我还没有成功..任何人都可以给我一个关于如何处理这个问题的提示.
我将分别拿2对两分.也就是说,我将制作2个和弦.找出他们的垂直平分线.使用这些平分线,我会发现圆圈的中心......
而且,我会想出圆圈的等式.并找到点M与圆的交点......那应该是最近点.但是,该点可能存在也可能不存在于N点的集合中
谢谢.
假设我有一个人员列表,其中包含他们在过去发生的事件中的到达和离开时间.
我的任务是找出人最大数量存在于事件的任何时间?我没有给出查询时间.
ai =人的到达时间i
di =人的离开时间i
我有一个对象列表,如(a1,d1),(a2,d2),(a3,d3)....(an,dn)......它不在数据库中.
在这个问题中我们可以看到事件的最大人数是3.
所以在这个例子中.对于大小为3的问题,我们有五种解决方案.{b,d,e},{j,h,i},{c,b,a},{e,g,f},{g,h,f}.我只想知道3号.
我的方法:
我.创建一个size =最后出发时间 - 首次到达时间的数组.并继续增加该数组的计数.
II.我试图按照他们的开始时间对人们进行排序.并继续跳到下一个人的开始时间.在那之后,我迷路了.我该怎么办?
谢谢
@ypnos://在时间戳上对数据进行排序.
int count = 0;
int max = 0
char [] arr = {a1, a2, d1, a3, a4, d3, d2, } like this..
for(int i =0; i < arr.length; i++)
{
if(arr[i].startswith('a') )
{
count++;
if(count > max)
{
max = count;
}
}
else
{
count--;
}
}
Run Code Online (Sandbox Code Playgroud)