- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我今天被问到这个问题,我知道答案很简单,但他让我一直到最后。
编写程序删除存储在 MảngDanh sách
中的偶数,其中包含 1 - 100
。
给你,这就是我的实现方式。
ArrayList source = new ArrayList(100);
for (int i = 1; i < 100; i++)
{
source.Add(i);
}
for (int i = 0; i < source.Count; i++)
{
if (Convert.ToInt32(source[i]) % 2 ==0)
{
source.RemoveAt(i);
}
}
//source contains only Odd elements
他问我这个给他一个方程式的计算复杂度是多少。我只是说这是与 N(输入)成正比的线性关系。
他说:嗯……所以这意味着当输入大小增加时我需要等待更长的时间才能得到结果,对吗? 是的,先生,您是
为我调整它,让它 Log(N)
尽可能多地尝试他说的。我在这部分失败得很惨。
Để ý:他不需要 Linq,不需要额外的花里胡哨。只是简单的循环或其他逻辑来完成它
câu trả lời hay nhất
我敢说复杂度实际上是 O(N^2),因为数组中的删除是 O(N) 并且可能会为每个项目调用它。
因此,遍历数组(列表)的时间复杂度为 O(N),每次删除的时间复杂度为 O(N) => O(N) * O(N)。
既然不是很清楚,那我就说说道理吧。在每一步都可能会移除一个项目(假设最坏的情况是每个项目都必须被移除)。在数组中,删除是通过移位完成的。因此,要删除第一项,我需要将以下所有 N-1 项向左移动一个位置:
1 2 3 4 5 6...
<---
2 3 4 5 6...
现在,在每次迭代中我都需要移位,所以我进行了 N-1 + N-2 + ... + 1 + 0
移位,结果为 (N) * (N-1)/2
(算术级数)给出 O(N^2) 的最终复杂度。
关于c# - 面试——写一个程序去掉偶数元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10767202/
Tôi chưa quen với ngôn ngữ C và tôi đã viết chương trình C này cho phép người dùng nhập ngày trong năm và đổi lại chương trình sẽ xuất ra tháng và ngày trong tháng. Chương trình hoạt động tốt, nhưng bây giờ tôi muốn đơn giản hóa chương trình. Tôi biết tôi cần một vòng lặp, nhưng tôi không biết làm thế nào để làm điều đó. Đây là chương trình
Tôi đang cố gắng tìm hiểu xem có vấn đề gì với mã của mình. Ý tưởng là tạo ra một chương trình vẽ nhỏ và có các nút màu đỏ, xanh lá cây, xanh dương và trong suốt. Tôi có mọi thứ tôi có thể nghĩ ra để làm cho nó hoạt động nhưng không thể tìm ra lỗi ở mã nào. Chương trình mở ra rồi đóng ngay lập tức. nhập khẩu
Tôi muốn cài đặt màn hình, nhưng tôi nên làm gì tiếp theo? $ brew màn hình tìm kiếm màn hình ảnh chụp màn hình imgur
Tôi có một ứng dụng ổ cắm UDP hoạt động ở phía máy chủ. Để kiểm tra phía máy chủ, tôi đã viết một chương trình máy khách python đơn giản gửi thông báo "xin chào thế giới, bạn khỏe không". Sau đó, máy chủ sẽ nhận được tin nhắn và đặt
Tôi có một tập lệnh shell chạy chương trình Python để xử lý trước một số dữ liệu, sau đó chạy chương trình R để thực hiện một số tác vụ dài hạn. Tôi đang học cách sử dụng Docker và tôi đang chạy TỪ r-base:l
Trong Linux. Tôi có một chương trình c đọc tệp văn bản 2048 byte làm đầu vào. Tôi muốn khởi chạy chương trình c từ tập lệnh Python. Tôi muốn một tập lệnh Python chuyển các chuỗi văn bản làm đối số cho chương trình c thay vì
Lời nói đầu: Gần đây tôi đã bắt đầu sắp xếp các bản nháp tồn kho trong ghi chú của mình. Bài viết này được tạo vào tháng 5 năm 2023 (vì nó đã được chuyển sang OneDrive giữa chừng, có thể hơn thế nữa). như tải đĩa mạng Baidu và tham gia nhóm QQ như tôi
Đối với một lớp học, tôi được yêu cầu viết chương trình VHDL lấy hai đầu vào số nguyên A và B và thay thế A bằng A+B và B bằng AB. Tôi đã viết chương trình và testbench sau đây. Nó thực hiện việc kiểm tra cú pháp triển khai và hành vi nhưng không mô phỏng. khí thải
mô-đun Thuật toán nơi nhập System.Random nhập Data.Maybe nhập Data.List loại Atom = String ty
Tôi muốn tìm bội số chung nhỏ nhất của nhiều hơn hai số. Câu trả lời hay nhất cho chương trình C++ để tìm bội số chung nhỏ nhất của một số N cho trước int lcm(int a, int b) { return (a/gcd(a,b) )*b; } Đối với gcd, hãy kiểm tra
Có một lỗi trong chương trình này. Có ai có thể giải quyết vấn đề này? Lỗi là: TempRecord đã xác định một thành viên có tên là 'this' có cùng tham số
Khi tôi chạy chương trình bên dưới, tôi nhận được các giá trị rác trong str1 và str2. Vì vậy #include #include #include sử dụng không gian tên std;
Đây là nhiệm vụ của tôi: Một cặp thỏ sơ sinh (một đực và một cái) được thả trên một cánh đồng. Thỏ sẵn sàng giao phối khi được một tháng tuổi nên đến cuối tháng thứ hai, mỗi cặp sẽ sinh ra hai cặp thỏ mới rồi chết. Lưu ý: Vào tháng 0 có 0 cặp thỏ. Tháng đầu tiên có 1 đôi thỏ
Tôi đã viết một chương trình để chuyển đổi một chuỗi thập phân thành thập lục phân bằng cách sử dụng lệnh chuyển đổi trên các chữ cái, nhưng nếu tôi sử dụng char thì chương trình không hoạt động! Tôi hy vọng bạn có thể hiểu tôi vì tôi
Tôi mới làm quen với C++ (mặc dù tôi có một số kinh nghiệm với C) và MySQL và tôi đang cố gắng tạo một chương trình đọc cơ sở dữ liệu từ MySQL. Tôi đã làm theo hướng dẫn này nhưng tôi gặp lỗi khi thử " xây dựng" giải pháp. (Tôi đang sử dụng
Vẫn là người mới bắt đầu và chỉ đang thử một số chức năng cơ bản trong Swift. Có ai có thể cho tôi biết điều gì sai với mã này không? nhập UIKit var GuessInt: Int var RandomNum = arc
Tôi đang viết một hàm trong C++11 có các biểu thức có dạng constant1 + constant2 và thu gọn chúng. constant1 và constant2 được lưu trữ trong std::string,
Tôi đã viết mã này bằng C++ để cộng và nhân 2 ma trận bằng cách sử dụng nạp chồng toán tử. Khi tôi thực thi mã, nó tạo ra lỗi, hoạt động cấu trúc bất hợp pháp, trên dòng 57 và 59 (cùng một lỗi trên cả hai dòng). Hãy giải thích sai lầm của tôi. Cảm ơn trước:
Tôi là người mới bắt đầu học C++ và tôi muốn viết một chương trình đơn giản để hoán đổi hai ký tự trong một chuỗi. Ví dụ: chúng tôi nhập chuỗi này: "EXAMPLE" và chúng tôi trao đổi hai ký tự này cho chuỗi đó: "E" và "A", đầu ra phải tương tự như "AXEMPLA". tôi ở đây
Tôi cần trợ giúp với đoạn mã sau: Khai báo 3 biến kiểu kép, mỗi biến đại diện cho một trong ba cạnh của một hình tam giác. Nhắc người dùng nhập giá trị cho cạnh đầu tiên, sau đó đặt thông tin đầu vào của người dùng thành biến bạn đã tạo để thể hiện cạnh đầu tiên của tam giác. Thay đổi 2 bước cuối cùng
Tôi là một lập trình viên xuất sắc, rất giỏi!