精华内容
下载资源
问答
  • 一、选择 (1) 下面叙述正确的是(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都...
  • 今天遇到问题如:   最后通过网络找到答案,,,主要是ScrollView问题,,,所以贴出来大家一起共同学习.  解决方法1:(代码去计算高度,然后在显示)  private void setListViewHeightBasedOnChildren...

         今天遇到问题如题:

                 最后通过网络找到答案,,,主要是ScrollView问题,,,所以贴出来大家一起共同学习.


               解决方法1:(代码去计算高度,然后在显示)

                         private void setListViewHeightBasedOnChildren(ListView listView) {
    ItemListAdapter listAdapter = (ItemListAdapter) listView.getAdapter();

    if (listAdapter == null) {
    return;
    }
    int totalHeight = 0;
    for (int i = 0; i < listAdapter.getCount(); i++) {

    View listItem = listAdapter.getView(i, null, listView);
    listItem.measure(0, 0);
    totalHeight += listItem.getMeasuredHeight();
    }
    ViewGroup.LayoutParams params = listView.getLayoutParams();
    params.height = totalHeight
    + (listView.getDividerHeight() * (listAdapter.getCount() - 1));
    listView.setLayoutParams(params);
    }


        解决方法2: (复写listView )

                  

    publicvoidonMeasure(intwidthMeasureSpec,intheightMeasureSpec) {
    2         intmExpandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
    3         super.onMeasure(widthMeasureSpec, mExpandSpec);
    4  
    5    }
        两个方法都可以,第二个相对而言比较方便点。

        问题出现了:当listView中每项中有TextView等多行显示的时候,上面的计算方法都是默认单行计算的,这样的话计算高度就不正确了。。。

        解决办法:
            这个问题不在计算函数上,因为我无法获取TextView 显示高度的一些信息,所以解决问题必须从TextView本身来考虑。。,对了,我这里就是想重写TextView控件,然后在onMeasure把显示高度计算好,这样就能成功的计算出listView的高度了。。
           重写类如下:

    public class NewTextView extends TextView {


    private Context context;


    public NewTextView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
    this.context = context;
    }


    public NewTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
    // TODO Auto-generated constructor stub
    this.context = context;
    }


    @SuppressLint("FloatMath")
    @Override
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    // TODO Auto-generated method stub
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    Layout layout = getLayout();
    if (layout != null) {
    int height = (int) FloatMath.ceil(getMaxLineHeight(this.getText()
    .toString()))
    + getCompoundPaddingTop()
    + getCompoundPaddingBottom();
    int width = getMeasuredWidth();
    setMeasuredDimension(width, height);
    }
    }


    @SuppressLint("NewApi")
    private float getMaxLineHeight(String str) {
    float height = 0.0f;
    float screenW = ((Activity) context).getWindowManager()
    .getDefaultDisplay().getWidth();
    float paddingLeft = ((LinearLayout) this.getParent()).getPaddingLeft();
    float paddingReft = ((LinearLayout) this.getParent()).getPaddingRight();
    // 这里具体this.getPaint()要注意使用,要看你的TextView在什么位置,这个是拿TextView父控件的Padding的,为了更准确的算出换行
    int line = (int) Math.ceil((this.getPaint().measureText(str) / (screenW
    - paddingLeft - paddingReft))) +1 ; //+1是为了让界面更好看
    height = (this.getPaint().getFontMetrics().descent - this.getPaint()
    .getFontMetrics().ascent) * line;
    return height;
    }
    }


    但问题又出现了,你有可能发现程序代码报错了,关键是这一句代码:

    float paddingLeft = ((LinearLayout) this.getParent()).getPaddingLeft();
    float paddingReft = ((LinearLayout) this.getParent()).getPaddingRight();

    可以看出,在使用控件的时候,父布局一定要是LinearLayout,所以在使用的地方把该控件用LinearLayout封装包裹一下,问题就完美解决了。。。

       如想更多交流,请加android技术群:451370308 (诚心交流,非诚勿扰)








    展开全文
  • 真题总结三

    2020-03-01 22:46:39
    循环队列是线性结构,由队头和队尾两个指针共同决定。 2.支持子程序调用的结构是队列。 3.二叉树的计算问题: 1.二叉树的深度和层数其实是一样的。 2.任意一棵树的总结点数等于总分支数+1 3.叶子结点也称...

    1.栈是“先进后出”,队列是“先进先出”。循环队列是线性结构,由队头和队尾两个指针共同决定。

    2.支持子程序调用的结构是队列

    3.二叉树的计算问题:

    • 1.二叉树的深度和层数其实是一样的。

      2.任意一棵树的总结点数等于总分支数+1

      3.叶子结点也称叶子,度为0的结点。

      4.一个深度为n的满二叉树的总结点数为  (2^(n-1))  -1(其实得出这个结论画个图就知道了,不难)

      5.深度为h的完全二叉树至少有2^(h-1)个结点,最多有(2^h)-1个结点。

    4.数据库应用系统中的核心问题是——数据库设计。

    5.C源程序中不能表示的数制是二进制。

    6.宏替换没有数据类型限制,宏定义不一定都是大写字母表示。

     

     记住了,函数里的变量是形参。

    s是指向字符数组首地址。

    //复习冒泡排序
    for(int i=1; i<=N; i++)
    {
        for(int j=0; j<=N-i; j++)
        {
            if(a[j]>a[j+1])    //如果前一个元素大则交换,从小到大排列
            {
                t=a[j];
                a[j]=a[j+1];
                a[j+1]=t;
            }
        }
    }
    double fun(double  x[],double  *av)
    { int  i,j;    double  d,s;
      s=0;
      for(i=0; i<N; i++)  s = s +x[i];
    /**********found**********/
      *av=s/N;
      d=32767;
      for(i=0; i<N; i++)
        if(x[i]<*av && *av - x[i]<=d){
    /**********found**********/
          d=*av-x[i];     //取离平均值最近的元素
    	  j=i;
    	 }
    /**********found**********/
      return  x[j];
    }

     

    展开全文
  • 数据结构面试 java面试

    热门讨论 2010-01-14 17:08:43
    1.栈和队列的共同特点是(只允许在端点处插入和删除元素) 4.栈通常采用的两种存储结构是(线性存储结构和链表存储结构) 5.下列关于栈的叙述正确的是(D) A.栈是非线性结构B.栈是一种树状结构C.栈具有先进先出的...
  • 数据结构

    2012-09-10 14:48:39
    10. 栈和队列的共同特点是( )。 A.只允许在端点处插入和删除元素 B.都是先进后出 C.都是先进先出 D.没有共同点 11. 用链接方式存储的队列,在进行插入运算时( ). A. 仅修改头指针 B. 头、尾指针都要修改 C. 仅...
  • 12年数模国赛A

    2018-06-17 14:41:02
    为了评价两组结果的可信,借助Alpha模型用克伦巴赫 系数衡量,并结合 检验,得出红葡萄酒第一组评酒员的评价结果可信更高,而对白葡萄酒的品尝评分,第二组评酒员的评价结果可信更高。综合来看,主观因素对...
  • JAVA面试最全集

    2010-03-13 13:09:10
    IS09000和CMM(软件能力成熟模型)认证是国际上通用的软件质量评估方法.CMM的五个成熟等级。 第一,谈谈final, finally, finalize的区别。 final?修饰符(关键字)如果一个类被声明为final,意味着它不能再...
  • 数据结构(C++)有关练习

    热门讨论 2008-01-02 11:27:18
    利用堆栈类,将本a和b的代码改成非递归的方式。 实验报告要求: 按要求写出完整的实验代码; <br>实验四 综合(课程设计) 内容及步骤: 1、假定一维数组a[n]中的每个元素值均在[0,200]区间内,用C++...
  • 题目描述 ...找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。 说明:你不能倾斜容器,且n的值至少为 2。 分析 如果使用暴力搜索, 时间复杂度:O(n^2),计算所有种高度组...

    题目描述

    给定 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (iai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (iai) 和 (i, 0)。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。

    说明:你不能倾斜容器,且 n 的值至少为 2。

     

     分析

    如果使用暴力搜索,

    • 时间复杂度:O(n^2),计算所有种高度组合的面积。
    • 空间复杂度:O(1),使用恒定的额外空间。

    使用双指针搜索:

    我们在由线段长度构成的数组中使用两个指针,一个放在开始,一个置于末尾。 此外,我们会使用变量 maxarea 来持续存储到目前为止所获得的最大面积。 在每一步中,我们会找出指针所指向的两条线段形成的区域,更新 maxarea,并将指向较短线段的指针向较长线段那端移动一步。

    代码如下:

    class Solution:
    	def maxArea(self, height: List[int]) -> int:
    		i=0
    		j=len(height)-1
    		res=0 # 使用双指针
    		while i<j:
    			h=min(height[i],height[j])
    			res=max(res,(j-i)*h)
    			if height[i]>height[j]:
    				j=j-1
    			else:
    				i=i+1
    		return res

    那么,为什么这种双指针搜索不会错过最优解呢?

    我们从最开始,i=0,j=n-1开始分析,res表示容器的体积,一共两种情况:

    (1)第一根高度比最后一根高度要矮,这个时候要把当前的容积存下来,并把左指针右移一位 ,这个时候之后就不用考虑第一根柱子了,为什么呢?

            因为固定左侧指针为第一根柱子不动时,对于第一根柱子来说,另一根柱子选择最后一根柱子已经是使容器体积最大,也即res最大的方案了。所以我们把这个容积res=(n-1)*height[0]存下来之后,就不需要考虑第一根柱子了,不像暴力搜索中,两层循环。这又是为什么呢?我们也分两种情况考虑。

            (a)如果选取的右侧柱子比第一根高,那么不论右侧柱子是哪一根,容器的高度h肯定取较短的那一侧高度,也就是第一根柱子高度height[0],接下来只需要看容器的宽度,也就是(j-i)的大小就好了,显然n-1是最大的宽度了,所以此时右指针是n-1是最优选择;(b)如果选取的右侧柱子比第一根矮,那么h<height[0]还小,而且容器的宽度比n-1也小,所以容积肯定也比(n-1)*height[0]小了。

            所以第一种情况下,最大的容积res=(n-1)*height[0],把这个值保存下来,想要看还有没有比这个res还大的情况,第一根柱子就不用考虑了,故把i加一,从第二根柱子开始重复这个比较过程;

    (2)第一根高度比最后一根高度要高:那么跟上面这种情况类似,我们从后往前看,从最后一根柱子的视角来看,另一根柱子选择第一根柱子是使得res最大的选择,接下来把res保存下来,把j减一,就可以不用考虑最后一根柱子了。

    从而,可以实现时间复杂度为O(n)的算法了,即只要一次遍历即可。

    展开全文
  • 而软件开发过程是一种高密集的脑力劳动,软件开发的模式及技术 不能适应软件发展的需要。致使大量质量低劣的软件涌向市场,有的花费大量人力、财力, 而在开发过程中就夭折。软件危机主要表现在两个方面: (1) ...
  • 本章重点介绍C++函数与C函数共同的特性。具体地说,读者将复习函数定义的 通用格式,了解函数原型是如何提高程序可靠性的。同时,还将学习如何编写函数来处理数组、字符串和 结构。还要学习有关递归的知识(即函数...
  • 本章重点介绍C++函数与C函数共同的特性。具体地说,读者将复习函数定义的 通用格式,了解函数原型是如何提高程序可靠性的。同时,还将学习如何编写函数来处理数组、字符串和 结构。还要学习有关递归的知识(即函数...
  • 本章重点介绍C++函数与C函数共同的特性。具体地说,读者将复习函数定义的 通用格式,了解函数原型是如何提高程序可靠性的。同时,还将学习如何编写函数来处理数组、字符串和 结构。还要学习有关递归的知识(即函数...
  • 本章重点介绍C++函数与C函数共同的特性。具体地说,读者将复习函数定义的 通用格式,了解函数原型是如何提高程序可靠性的。同时,还将学习如何编写函数来处理数组、字符串和 结构。还要学习有关递归的知识(即函数...
  • BZOJ2127 happiness-最小割

    2017-05-11 13:30:02
    题目链接:右转进入题目 题目大意:请自行参考原 解: ...对于每对相邻的同学X和Y,其共同学习某文科的喜悦为C,建立(S,新加一个节点,C),(新加的那个节点,X,无穷大),(新加的那个节点,Y,无穷大)

    题目链接:右转进入题目

    题目大意:请自行参考原题

    解:

    最小割经典题,有一种计算边权的方法并不会。

    直接建图:

    新建S表示文科,T表示理科。

    对于每个同学X,建立(S,X,X同学学习文科的喜悦度),(X,T,X同学学习理科的喜悦度)

    对于每对相邻的同学X和Y,其共同学习某文科的喜悦度为C,建立(S,新加一个节点,C),(新加的那个节点,X,无穷大),(新加的那个节点,Y,无穷大)

    共同理科同理,换成T换个顺序即可。

    统计非无穷大的边权之和,减去最小割就是答案。

    代码:

    //BZOJ2127
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<queue>
    #include<climits>
    #define INF INT_MAX
    #define P(x,y) (~-(x)*m+(y))
    #define MAXN 60000
    #define MAXM 300000
    using namespace std;
    struct edges{
    	int to,resf,pre;
    }e[MAXM];int etop;
    int h[MAXN],cur[MAXN],lev[MAXN];
    bool vis[MAXN];queue<int> q;
    bool bfs(int s,int t)
    {
    	memset(lev,0,sizeof(lev));
    	memset(vis,false,sizeof(vis));
    	while(!q.empty()) q.pop();
    	q.push(s);lev[s]=0;vis[s]=true;
    	while(!q.empty())
    	{
    		int x=q.front();q.pop();
    		for(int i=h[x];i;i=e[i].pre)
    			if(!vis[e[i].to]&&e[i].resf)
    			{
    				vis[e[i].to]=true;
    				lev[e[i].to]=lev[x]+1;
    				q.push(e[i].to);
    			}
    	}
    	return vis[t];
    }
    int dfs(int s,int t,int a)
    {
    	if(s==t||!a) return a;
    	int flow=0,f;
    	for(int &i=cur[s];i;i=e[i].pre)
    		if(lev[e[i].to]==lev[s]+1&&(f=dfs(e[i].to,t,min(a,e[i].resf)))>0)
    		{
    			a-=f;flow+=f;
    			e[i].resf-=f;
    			e[((i-1)^1)+1].resf+=f;
    			if(!a) break;
    		}
    	return flow;
    }
    int add_edge(int u,int v,int resc)
    {
    	etop++;
    	e[etop].to=v;
    	e[etop].resf=resc;
    	e[etop].pre=h[u];
    	h[u]=etop;
    	return 0;
    }
    int main()
    {
    	int n,m;scanf("%d%d",&n,&m);
    	int s=0,t=5*m*n+1,totans=0;
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			int w;scanf("%d",&w);totans+=w;
    			add_edge(s,P(i,j),w);add_edge(P(i,j),s,0);
    		}
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			int l;scanf("%d",&l);totans+=l;
    			add_edge(P(i,j),t,l);add_edge(t,P(i,j),0);
    		}
    	for(int i=1;i<n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			int gw;scanf("%d",&gw);totans+=gw;
    			int A=m*n+P(i,j),S1=P(i,j),S2=P(i+1,j);
    			add_edge(s,A,gw);add_edge(A,s,0);
    			add_edge(A,S1,INF);add_edge(S1,A,0);
    			add_edge(A,S2,INF);add_edge(S2,A,0);
    		}
    	for(int i=1;i<n;i++)
    		for(int j=1;j<=m;j++)
    		{
    			int gl;scanf("%d",&gl);totans+=gl;
    			int B=2*m*n+P(i,j),S1=P(i,j),S2=P(i+1,j);
    			add_edge(B,t,gl);add_edge(t,B,0);
    			add_edge(S1,B,INF);add_edge(B,S1,0);
    			add_edge(S2,B,INF);add_edge(B,S2,0);
    		}
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<m;j++)
    		{
    			int gw;scanf("%d",&gw);totans+=gw;
    			int A=3*m*n+P(i,j),S1=P(i,j),S2=P(i,j+1);
    			add_edge(s,A,gw);add_edge(A,s,0);
    			add_edge(A,S1,INF);add_edge(S1,A,0);
    			add_edge(A,S2,INF);add_edge(S2,A,0);
    		}
    	for(int i=1;i<=n;i++)
    		for(int j=1;j<m;j++)
    		{
    			int gl;scanf("%d",&gl);totans+=gl;
    			int B=4*m*n+P(i,j),S1=P(i,j),S2=P(i,j+1);
    			add_edge(B,t,gl);add_edge(t,B,0);
    			add_edge(S1,B,INF);add_edge(B,S1,0);
    			add_edge(S2,B,INF);add_edge(B,S2,0);
    		}
    	int flow=0;
    	while(bfs(s,t))
    	{
    		for(int i=s;i<=t;i++)
    			cur[i]=h[i];
    		flow+=dfs(s,t,INF);
    	}
    	printf("%d\n",totans-flow);return 0;
    }


    展开全文
  • 现每日一更LeetCodeTop 100 Liked Questions, 旨在于通过通俗易懂的画风和诸位计算机朋友们一起成长呀,不局限某,争取举一反三,所有Questions均呈上C++和Java解法,不足之处多多指正,共同学习。 解题思路一:...
  • 18年电子院跨考网研院803经验分享 by 工1 18年跨考北邮计算机院经验分享 by ciphor 18年二战跨考北邮计算机院经验分享 by DeamoV 18年北邮理学院跨考网研院经验分享 by tzm 18年通信工程跨考北邮网研院经验分享 ...
  • 车联网信道资源稀缺及车载节点间的间歇性短暂链接,给车载节点通过无线接入点(AP)接入互联网进行 内容下载带来了巨大挑战.AP 覆盖范围内的资源分配与 Internet 链接空洞区域的传输调度相互依赖,共同影响其下 载性能,...
  • 12.2.1 市场购物篮模型、支持与可信 237 12.2.2 Apriori算法 238 12.2.3 采样算法 239 12.2.4 频繁模式树算法 239 12.2.5 分区算法 241 12.2.6 其他类型的关联规则 242 12.2.7 关联...
  • 现任佐治亚理工学院计算学院教授,自1990年开始他一直在该校任教。他的主要研究方向是工程设计、生物(特别是人类基因组)数据库、文档及文本数据库等新兴应用中的数据库建模。设计和集成,此外,他对知识表示、数据...
  • 舞蹈,在音乐、美术等多种艺术因素的共同参与下溶为整体,成为一门多元艺术共同协作的综合性艺术。 执行下列编辑操作:将其中的中文改为粗黑体5号,在文字最后插入TEST5.DOC文件;最后保存。 ⑴输入文字; ⑵选定...
  • 学霸中学生FAQ

    2012-02-05 17:05:49
    本:学生在“测”栏目中所有做错的测控,FAQ系统都会进行记录与分析整理,每周四有计划地自动发送给学生进行学习改错,帮助学生真正做到有的放矢,查缺补弱。 个性学习 你要我给 现代学习方式尊重学生的...
  • * Copyright (C) 2012 明振居士 版权没有,任意拷贝及使用,但对使用造成的任何后果不负任何责任,互相开源影响,共同进步 * 文 件 名:DataGridViewEx.cs * 创 建 人:明振居士 * Email:nzj.163@163....
  • 一般来说同步反映了进程之间的协作性质,往往指有几个进程共同完成一个任务时在时间次序上的某种限制,进程相互之间各自的存在及作用,通过交换信息完成通信。如接力比赛中一组队员使用接力棒等。 进程互斥...
  • 慧创POS软件连锁版

    2011-01-02 11:01:54
    系统在POS的运用能否达到预期目标,起到应有的作用,培训的质量是整个系统使用的前和关键;本公司历年来重视培训工作,并经多年实践总结出一套完整的培训计划,主要分为以下三个方面: 系统维护员培训 人员要求:...
  • 慧创连锁版超市POS收银系统

    热门讨论 2009-07-29 09:01:00
    系统在POS的运用能否达到预期目标,起到应有的作用,培训的质量是整个系统使用的前和关键;本公司历年来重视培训工作,并经多年实践总结出一套完整的培训计划,主要分为以下三个方面: 系统维护员培训 人员要求:...
  • 系统在POS的运用能否达到预期目标,起到应有的作用,培训的质量是整个系统使用的前和关键;本公司历年来重视培训工作,并经多年实践总结出一套完整的培训计划,主要分为以下三个方面: 系统维护员培训 人员要求:...
  • 尚硅谷2018年9月最新大数据视频教程...尚硅谷_扩展案例_找共同粉丝(学生版1).avi 198_尚硅谷_扩展案例_找共同粉丝(学生版2).avi 199_尚硅谷_Hadoop总结_企业真实面试讲解.avi 200_尚硅谷_Hadoop总结_开发重点.avi
  • : 推送较简单的教程或是摘抄同业文章、炒作、广告等投送到微信、微博等其他公众平台,以此提升知名; 经过五毛被诱导的众人和被减学费洗脑的学员以及HR推送公告到QQ群等其他社交群落; : 赚够了钱就开设其他行业...
  • 最新二级公共基础知识填空40+80选择 (1) 算法的复杂度主要包括______复杂度和空间复杂度。 答:时间 (2) 数据的逻辑结构在计算机存储空间中的存放形式称为数据的______。 答:模式#逻辑模式#概念模式 (3) 若...

空空如也

空空如也

1 2
收藏数 36
精华内容 14
关键字:

共同度计算题