3 条题解

  • 0
    @ 2026-3-11 15:28:28

    Python题解

    import sys
    input = lambda:sys.stdin.readline().strip()
    
    ans=0
    n,x = map(int,input().split())
    a = [0] + list(map(int,input().split()))
    
    i, j = 1, n
    while(i<j):
        if a[i] + a[j] == x:
            ans+=1
            i+=1
            continue
        if a[i] + a[j] < x:
            i+=1
            continue
        if a[i] + a[j] > x:
            j-=1
            continue
    print(ans)
    
    • 0
      @ 2025-9-14 19:40:19

      c++题解

      #include<bits/stdc++.h>
      using namespace std;
      #define int long long
      int a[100100],x,n,ans=0;
      signed main(){
        cin>>n>>x;
        for(int i=1;i<=n;i++){
          cin>>a[i];
        }
        int l=1,r=n;
        while(l<r){
          if(a[l]+a[r]==x){
              ans++;
              r--;
              l++;
          }
          else if(a[l]+a[r]>x){
              r--;//如果大于x就减少右边
          }
          else l++;//否则增加左边
        }
        cout<<ans;
      
      }
      
      • 0
        @ 2025-5-8 22:05:05

        JAVA AC代码(map映射完成两数之和):

        import java.util.*;
        import java.util.StringTokenizer;
        import java.io.*;
        
        public class Main {
        
        	public static void main(String[] args) {
        		Map<Integer,Integer> map=new HashMap<>();
        		int n=in.nextInt();
        		int x=in.nextInt();
        		int ans=0;
        		for(int i=1;i<=n;i++){
        			int number=in.nextInt();
        			map.put(number,1);
        			if(map.containsKey(x-number)&&number!=x-number) ans++;
        		}
        		out.println(ans);
        		out.close();
        	}
        	
        	
        
        	static FastReader in=new FastReader();
        	static PrintWriter out=new PrintWriter(System.out);
        	static class FastReader{
        		static BufferedReader br;
        		static StringTokenizer st;
        		FastReader(){
        			br=new BufferedReader(new InputStreamReader(System.in));
        		}
        		String next() {
        			String str="";
        			while(st==null||!st.hasMoreElements()) {
        				try {
        					str=br.readLine();
        				}catch(IOException e) {
        					throw new RuntimeException(e);
        				}
        				st=new StringTokenizer(str);
        			}
        			return st.nextToken();
        		}
        		int nextInt() {
        			return Integer.parseInt(next());
        		}
        		double nextDouble() {
        			return Double.parseDouble(next());
        		}
        		long nextLong() {
        			return Long.parseLong(next());
        		}
        	}
        	
        }
        
        
        • 1

        信息

        ID
        54
        时间
        1000ms
        内存
        256MiB
        难度
        2
        标签
        递交数
        172
        已通过
        66
        上传者